lob 5.1.2 → 6.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODE_SNIPPETS.md +1871 -0
- data/Gemfile +6 -1
- data/Gemfile.lock +72 -0
- data/LICENSE +21 -0
- data/MIGRATION.md +174 -0
- data/README.md +70 -154
- data/Rakefile +7 -5
- data/__tests__/Api/Address.unit.rb +210 -0
- data/__tests__/Api/BankAccount.unit.rb +244 -0
- data/__tests__/Api/BillingGroup.unit.rb +170 -0
- data/__tests__/Api/Card.unit.rb +183 -0
- data/__tests__/Api/CardOrder.unit.rb +89 -0
- data/__tests__/Api/Check.unit.rb +185 -0
- data/__tests__/Api/IntlAutocompletion.unit.rb +43 -0
- data/__tests__/Api/IntlVerification.unit.rb +71 -0
- data/__tests__/Api/Letter.unit.rb +191 -0
- data/__tests__/Api/Postcard.unit.rb +189 -0
- data/__tests__/Api/Require.unit.rb +21 -0
- data/__tests__/Api/ReverseGeocodeLookup.unit.rb +43 -0
- data/__tests__/Api/SelfMailer.unit.rb +190 -0
- data/__tests__/Api/Template.unit.rb +165 -0
- data/__tests__/Api/TemplateVersion.unit.rb +165 -0
- data/__tests__/Api/UsAutocompletion.unit.rb +42 -0
- data/__tests__/Api/UsVerification.unit.rb +71 -0
- data/__tests__/Api/ZipLookup.unit.rb +42 -0
- data/__tests__/Integration/Address.spec.rb +200 -0
- data/__tests__/Integration/BankAccount.spec.rb +243 -0
- data/__tests__/Integration/BillingGroup.spec.rb +163 -0
- data/__tests__/Integration/Card.spec.rb +198 -0
- data/__tests__/Integration/CardOrder.spec.rb +122 -0
- data/__tests__/Integration/Check.spec.rb +361 -0
- data/__tests__/Integration/IntlAutocompletion.spec.rb +54 -0
- data/__tests__/Integration/IntlVerification.spec.rb +90 -0
- data/__tests__/Integration/Letter.spec.rb +286 -0
- data/__tests__/Integration/Postcard.spec.rb +214 -0
- data/__tests__/Integration/ReverseGeocodeLookup.spec.rb +30 -0
- data/__tests__/Integration/SelfMailer.spec.rb +270 -0
- data/__tests__/Integration/Template.spec.rb +221 -0
- data/__tests__/Integration/TemplateVersion.spec.rb +275 -0
- data/__tests__/Integration/UsAutocompletion.spec.rb +54 -0
- data/__tests__/Integration/UsVerification.spec.rb +102 -0
- data/__tests__/Integration/ZipLookup.spec.rb +29 -0
- data/__tests__/TestFixtures.rb +36 -0
- data/docs/Address.md +52 -0
- data/docs/AddressDeletion.md +22 -0
- data/docs/AddressDomestic.md +40 -0
- data/docs/AddressDomesticExpanded.md +40 -0
- data/docs/AddressEditable.md +40 -0
- data/docs/AddressList.md +28 -0
- data/docs/AddressesApi.md +303 -0
- data/docs/BankAccount.md +44 -0
- data/docs/BankAccountDeletion.md +22 -0
- data/docs/BankAccountList.md +28 -0
- data/docs/BankAccountVerify.md +18 -0
- data/docs/BankAccountWritable.md +28 -0
- data/docs/BankAccountsApi.md +376 -0
- data/docs/BankTypeEnum.md +15 -0
- data/docs/BillingGroup.md +28 -0
- data/docs/BillingGroupEditable.md +20 -0
- data/docs/BillingGroupList.md +26 -0
- data/docs/BillingGroupsApi.md +305 -0
- data/docs/Buckslip.md +60 -0
- data/docs/BuckslipDeletion.md +20 -0
- data/docs/BuckslipEditable.md +24 -0
- data/docs/BuckslipOrder.md +42 -0
- data/docs/BuckslipOrderEditable.md +18 -0
- data/docs/BuckslipOrdersApi.md +157 -0
- data/docs/BuckslipOrdersList.md +26 -0
- data/docs/BuckslipUpdatable.md +22 -0
- data/docs/BuckslipsApi.md +372 -0
- data/docs/BuckslipsList.md +28 -0
- data/docs/BulkError.md +18 -0
- data/docs/BulkErrorProperties.md +20 -0
- data/docs/Campaign.md +52 -0
- data/docs/CampaignCreative.md +42 -0
- data/docs/CampaignDeletion.md +20 -0
- data/docs/CampaignUpdatable.md +36 -0
- data/docs/CampaignWritable.md +36 -0
- data/docs/CampaignsApi.md +376 -0
- data/docs/CampaignsList.md +28 -0
- data/docs/Card.md +54 -0
- data/docs/CardDeletion.md +22 -0
- data/docs/CardEditable.md +24 -0
- data/docs/CardList.md +28 -0
- data/docs/CardOrder.md +42 -0
- data/docs/CardOrderEditable.md +18 -0
- data/docs/CardOrderList.md +26 -0
- data/docs/CardOrdersApi.md +157 -0
- data/docs/CardUpdatable.md +22 -0
- data/docs/CardsApi.md +372 -0
- data/docs/Check.md +68 -0
- data/docs/CheckDeletion.md +22 -0
- data/docs/CheckEditable.md +48 -0
- data/docs/CheckList.md +28 -0
- data/docs/ChecksApi.md +315 -0
- data/docs/CmpScheduleType.md +15 -0
- data/docs/CmpUseType.md +15 -0
- data/docs/CountryExtended.md +15 -0
- data/docs/CountryExtendedExpanded.md +15 -0
- data/docs/CreativePatch.md +22 -0
- data/docs/CreativeResponse.md +42 -0
- data/docs/CreativeWritable.md +34 -0
- data/docs/CreativesApi.md +226 -0
- data/docs/CustomEnvelopeReturned.md +22 -0
- data/docs/DefaultApi.md +75 -0
- data/docs/DeliverabilityAnalysis.md +46 -0
- data/docs/DpvFootnote.md +15 -0
- data/docs/EngineHtml.md +15 -0
- data/docs/EventType.md +24 -0
- data/docs/Events.md +28 -0
- data/docs/Export.md +32 -0
- data/docs/ExportModel.md +18 -0
- data/docs/GeocodeAddresses.md +20 -0
- data/docs/GeocodeComponents.md +20 -0
- data/docs/HTTPValidationError.md +18 -0
- data/docs/IdentityValidation.md +34 -0
- data/docs/IdentityValidationApi.md +78 -0
- data/docs/InlineObject.md +18 -0
- data/docs/IntlAutocompletions.md +20 -0
- data/docs/IntlAutocompletionsApi.md +82 -0
- data/docs/IntlAutocompletionsWritable.md +26 -0
- data/docs/IntlComponents.md +26 -0
- data/docs/IntlSuggestions.md +30 -0
- data/docs/IntlVerification.md +38 -0
- data/docs/IntlVerificationOrError.md +40 -0
- data/docs/IntlVerificationWritable.md +32 -0
- data/docs/IntlVerifications.md +20 -0
- data/docs/IntlVerificationsApi.md +153 -0
- data/docs/IntlVerificationsPayload.md +18 -0
- data/docs/Letter.md +72 -0
- data/docs/LetterCustomEnvelope.md +22 -0
- data/docs/LetterDeletion.md +22 -0
- data/docs/LetterDetailsReturned.md +36 -0
- data/docs/LetterDetailsWritable.md +32 -0
- data/docs/LetterEditable.md +52 -0
- data/docs/LetterList.md +28 -0
- data/docs/LettersApi.md +317 -0
- data/docs/LobConfidenceScore.md +20 -0
- data/docs/LobError.md +22 -0
- data/docs/Location.md +20 -0
- data/docs/LocationAnalysis.md +22 -0
- data/docs/MailType.md +15 -0
- data/docs/MultiLineAddress.md +32 -0
- data/docs/MultipleComponents.md +30 -0
- data/docs/MultipleComponentsIntl.md +30 -0
- data/docs/MultipleComponentsList.md +18 -0
- data/docs/PlaceholderModel.md +28 -0
- data/docs/Postcard.md +60 -0
- data/docs/PostcardDeletion.md +22 -0
- data/docs/PostcardDetailsReturned.md +26 -0
- data/docs/PostcardDetailsWritable.md +20 -0
- data/docs/PostcardEditable.md +40 -0
- data/docs/PostcardList.md +28 -0
- data/docs/PostcardSize.md +15 -0
- data/docs/PostcardsApi.md +317 -0
- data/docs/QrCode.md +30 -0
- data/docs/ReturnEnvelope.md +24 -0
- data/docs/ReverseGeocode.md +22 -0
- data/docs/ReverseGeocodeLookupsApi.md +82 -0
- data/docs/SelfMailer.md +48 -0
- data/docs/SelfMailerDeletion.md +22 -0
- data/docs/SelfMailerEditable.md +38 -0
- data/docs/SelfMailerList.md +28 -0
- data/docs/SelfMailerSize.md +15 -0
- data/docs/SelfMailersApi.md +317 -0
- data/docs/SortBy.md +20 -0
- data/docs/SortBy1.md +20 -0
- data/docs/SortBy2.md +20 -0
- data/docs/SortBy3.md +20 -0
- data/docs/SortByDateModified.md +20 -0
- data/docs/Suggestions.md +26 -0
- data/docs/Template.md +34 -0
- data/docs/TemplateDeletion.md +22 -0
- data/docs/TemplateList.md +28 -0
- data/docs/TemplateUpdate.md +20 -0
- data/docs/TemplateVersion.md +36 -0
- data/docs/TemplateVersionDeletion.md +22 -0
- data/docs/TemplateVersionList.md +28 -0
- data/docs/TemplateVersionUpdatable.md +20 -0
- data/docs/TemplateVersionWritable.md +22 -0
- data/docs/TemplateVersionsApi.md +384 -0
- data/docs/TemplateWritable.md +24 -0
- data/docs/TemplatesApi.md +376 -0
- data/docs/Thumbnail.md +22 -0
- data/docs/TrackingEventCertified.md +34 -0
- data/docs/TrackingEventDetails.md +24 -0
- data/docs/TrackingEventNormal.md +34 -0
- data/docs/Upload.md +44 -0
- data/docs/UploadCreateExport.md +20 -0
- data/docs/UploadFile.md +20 -0
- data/docs/UploadState.md +15 -0
- data/docs/UploadUpdatable.md +20 -0
- data/docs/UploadWritable.md +18 -0
- data/docs/UploadsApi.md +584 -0
- data/docs/UsAutocompletions.md +22 -0
- data/docs/UsAutocompletionsApi.md +78 -0
- data/docs/UsAutocompletionsWritable.md +26 -0
- data/docs/UsComponents.md +70 -0
- data/docs/UsVerification.md +38 -0
- data/docs/UsVerificationOrError.md +40 -0
- data/docs/UsVerifications.md +20 -0
- data/docs/UsVerificationsApi.md +157 -0
- data/docs/UsVerificationsWritable.md +32 -0
- data/docs/ValidationError.md +22 -0
- data/docs/Zip.md +26 -0
- data/docs/ZipCodeType.md +15 -0
- data/docs/ZipEditable.md +18 -0
- data/docs/ZipLookupCity.md +26 -0
- data/docs/ZipLookupsApi.md +78 -0
- data/git_push.sh +57 -0
- data/lib/lob.rb +1 -7
- data/lib/openapi_client/api/addresses_api.rb +318 -0
- data/lib/openapi_client/api/bank_accounts_api.rb +397 -0
- data/lib/openapi_client/api/billing_groups_api.rb +320 -0
- data/lib/openapi_client/api/buckslip_orders_api.rb +183 -0
- data/lib/openapi_client/api/buckslips_api.rb +385 -0
- data/lib/openapi_client/api/campaigns_api.rb +389 -0
- data/lib/openapi_client/api/card_orders_api.rb +183 -0
- data/lib/openapi_client/api/cards_api.rb +382 -0
- data/lib/openapi_client/api/checks_api.rb +337 -0
- data/lib/openapi_client/api/creatives_api.rb +244 -0
- data/lib/openapi_client/api/default_api.rb +79 -0
- data/lib/openapi_client/api/identity_validation_api.rb +90 -0
- data/lib/openapi_client/api/intl_autocompletions_api.rb +97 -0
- data/lib/openapi_client/api/intl_verifications_api.rb +165 -0
- data/lib/openapi_client/api/letters_api.rb +343 -0
- data/lib/openapi_client/api/postcards_api.rb +340 -0
- data/lib/openapi_client/api/reverse_geocode_lookups_api.rb +101 -0
- data/lib/openapi_client/api/self_mailers_api.rb +340 -0
- data/lib/openapi_client/api/template_versions_api.rb +440 -0
- data/lib/openapi_client/api/templates_api.rb +397 -0
- data/lib/openapi_client/api/uploads_api.rb +604 -0
- data/lib/openapi_client/api/us_autocompletions_api.rb +90 -0
- data/lib/openapi_client/api/us_verifications_api.rb +172 -0
- data/lib/openapi_client/api/zip_lookups_api.rb +90 -0
- data/lib/openapi_client/api_client.rb +392 -0
- data/lib/openapi_client/api_error.rb +57 -0
- data/lib/openapi_client/configuration.rb +279 -0
- data/lib/openapi_client/models/address.rb +616 -0
- data/lib/openapi_client/models/address_deletion.rb +303 -0
- data/lib/openapi_client/models/address_domestic.rb +522 -0
- data/lib/openapi_client/models/address_domestic_expanded.rb +521 -0
- data/lib/openapi_client/models/address_editable.rb +503 -0
- data/lib/openapi_client/models/address_list.rb +324 -0
- data/lib/openapi_client/models/bank_account.rb +576 -0
- data/lib/openapi_client/models/bank_account_deletion.rb +303 -0
- data/lib/openapi_client/models/bank_account_list.rb +324 -0
- data/lib/openapi_client/models/bank_account_verify.rb +264 -0
- data/lib/openapi_client/models/bank_account_writable.rb +387 -0
- data/lib/openapi_client/models/bank_type_enum.rb +37 -0
- data/lib/openapi_client/models/billing_group.rb +395 -0
- data/lib/openapi_client/models/billing_group_editable.rb +278 -0
- data/lib/openapi_client/models/billing_group_list.rb +314 -0
- data/lib/openapi_client/models/buckslip.rb +814 -0
- data/lib/openapi_client/models/buckslip_deletion.rb +257 -0
- data/lib/openapi_client/models/buckslip_editable.rb +316 -0
- data/lib/openapi_client/models/buckslip_order.rb +438 -0
- data/lib/openapi_client/models/buckslip_order_editable.rb +262 -0
- data/lib/openapi_client/models/buckslip_orders_list.rb +312 -0
- data/lib/openapi_client/models/buckslip_updatable.rb +289 -0
- data/lib/openapi_client/models/buckslips_list.rb +324 -0
- data/lib/openapi_client/models/bulk_error.rb +229 -0
- data/lib/openapi_client/models/bulk_error_properties.rb +274 -0
- data/lib/openapi_client/models/campaign.rb +549 -0
- data/lib/openapi_client/models/campaign_creative.rb +467 -0
- data/lib/openapi_client/models/campaign_deletion.rb +257 -0
- data/lib/openapi_client/models/campaign_updatable.rb +341 -0
- data/lib/openapi_client/models/campaign_writable.rb +373 -0
- data/lib/openapi_client/models/campaigns_list.rb +324 -0
- data/lib/openapi_client/models/card.rb +681 -0
- data/lib/openapi_client/models/card_deletion.rb +303 -0
- data/lib/openapi_client/models/card_editable.rb +318 -0
- data/lib/openapi_client/models/card_list.rb +324 -0
- data/lib/openapi_client/models/card_order.rb +438 -0
- data/lib/openapi_client/models/card_order_editable.rb +261 -0
- data/lib/openapi_client/models/card_order_list.rb +273 -0
- data/lib/openapi_client/models/card_updatable.rb +289 -0
- data/lib/openapi_client/models/check.rb +812 -0
- data/lib/openapi_client/models/check_deletion.rb +303 -0
- data/lib/openapi_client/models/check_editable.rb +537 -0
- data/lib/openapi_client/models/check_list.rb +324 -0
- data/lib/openapi_client/models/chk_use_type.rb +38 -0
- data/lib/openapi_client/models/cmp_schedule_type.rb +36 -0
- data/lib/openapi_client/models/cmp_use_type.rb +38 -0
- data/lib/openapi_client/models/country_extended.rb +254 -0
- data/lib/openapi_client/models/country_extended_expanded.rb +255 -0
- data/lib/openapi_client/models/creative_patch.rb +274 -0
- data/lib/openapi_client/models/creative_response.rb +444 -0
- data/lib/openapi_client/models/creative_writable.rb +400 -0
- data/lib/openapi_client/models/custom_envelope_returned.rb +319 -0
- data/lib/openapi_client/models/deliverability_analysis.rb +601 -0
- data/lib/openapi_client/models/dpv_footnote.rb +54 -0
- data/lib/openapi_client/models/engine_html.rb +37 -0
- data/lib/openapi_client/models/event_type.rb +325 -0
- data/lib/openapi_client/models/events.rb +365 -0
- data/lib/openapi_client/models/export.rb +422 -0
- data/lib/openapi_client/models/export_model.rb +262 -0
- data/lib/openapi_client/models/geocode_addresses.rb +237 -0
- data/lib/openapi_client/models/geocode_components.rb +291 -0
- data/lib/openapi_client/models/http_validation_error.rb +230 -0
- data/lib/openapi_client/models/identity_validation.rb +460 -0
- data/lib/openapi_client/models/inline_object.rb +229 -0
- data/lib/openapi_client/models/intl_autocompletions.rb +282 -0
- data/lib/openapi_client/models/intl_autocompletions_writable.rb +278 -0
- data/lib/openapi_client/models/intl_components.rb +314 -0
- data/lib/openapi_client/models/intl_suggestions.rb +372 -0
- data/lib/openapi_client/models/intl_verification.rb +463 -0
- data/lib/openapi_client/models/intl_verification_or_error.rb +466 -0
- data/lib/openapi_client/models/intl_verification_writable.rb +388 -0
- data/lib/openapi_client/models/intl_verifications.rb +250 -0
- data/lib/openapi_client/models/intl_verifications_payload.rb +263 -0
- data/lib/openapi_client/models/letter.rb +737 -0
- data/lib/openapi_client/models/letter_custom_envelope.rb +300 -0
- data/lib/openapi_client/models/letter_deletion.rb +303 -0
- data/lib/openapi_client/models/letter_details_returned.rb +393 -0
- data/lib/openapi_client/models/letter_details_writable.rb +390 -0
- data/lib/openapi_client/models/letter_editable.rb +532 -0
- data/lib/openapi_client/models/letter_list.rb +324 -0
- data/lib/openapi_client/models/lob_confidence_score.rb +299 -0
- data/lib/openapi_client/models/lob_error.rb +296 -0
- data/lib/openapi_client/models/location.rb +289 -0
- data/lib/openapi_client/models/location_analysis.rb +305 -0
- data/lib/openapi_client/models/ltr_use_type.rb +38 -0
- data/lib/openapi_client/models/mail_type.rb +37 -0
- data/lib/openapi_client/models/multi_line_address.rb +431 -0
- data/lib/openapi_client/models/multiple_components.rb +405 -0
- data/lib/openapi_client/models/multiple_components_intl.rb +377 -0
- data/lib/openapi_client/models/multiple_components_list.rb +263 -0
- data/lib/openapi_client/models/optional_address_column_mapping.rb +259 -0
- data/lib/openapi_client/models/placeholder_model.rb +273 -0
- data/lib/openapi_client/models/postcard.rb +656 -0
- data/lib/openapi_client/models/postcard_deletion.rb +303 -0
- data/lib/openapi_client/models/postcard_details_returned.rb +321 -0
- data/lib/openapi_client/models/postcard_details_writable.rb +242 -0
- data/lib/openapi_client/models/postcard_editable.rb +393 -0
- data/lib/openapi_client/models/postcard_list.rb +324 -0
- data/lib/openapi_client/models/postcard_size.rb +38 -0
- data/lib/openapi_client/models/psc_use_type.rb +38 -0
- data/lib/openapi_client/models/qr_code.rb +339 -0
- data/lib/openapi_client/models/required_address_column_mapping.rb +285 -0
- data/lib/openapi_client/models/return_envelope.rb +258 -0
- data/lib/openapi_client/models/reverse_geocode.rb +304 -0
- data/lib/openapi_client/models/self_mailer.rb +584 -0
- data/lib/openapi_client/models/self_mailer_deletion.rb +303 -0
- data/lib/openapi_client/models/self_mailer_editable.rb +384 -0
- data/lib/openapi_client/models/self_mailer_list.rb +324 -0
- data/lib/openapi_client/models/self_mailer_size.rb +38 -0
- data/lib/openapi_client/models/sfm_use_type.rb +38 -0
- data/lib/openapi_client/models/sort_by.rb +283 -0
- data/lib/openapi_client/models/sort_by1.rb +283 -0
- data/lib/openapi_client/models/sort_by2.rb +283 -0
- data/lib/openapi_client/models/sort_by3.rb +283 -0
- data/lib/openapi_client/models/sort_by_date_modified.rb +283 -0
- data/lib/openapi_client/models/suggestions.rb +343 -0
- data/lib/openapi_client/models/template.rb +406 -0
- data/lib/openapi_client/models/template_deletion.rb +303 -0
- data/lib/openapi_client/models/template_list.rb +324 -0
- data/lib/openapi_client/models/template_update.rb +272 -0
- data/lib/openapi_client/models/template_version.rb +423 -0
- data/lib/openapi_client/models/template_version_deletion.rb +303 -0
- data/lib/openapi_client/models/template_version_list.rb +324 -0
- data/lib/openapi_client/models/template_version_updatable.rb +257 -0
- data/lib/openapi_client/models/template_version_writable.rb +291 -0
- data/lib/openapi_client/models/template_writable.rb +309 -0
- data/lib/openapi_client/models/thumbnail.rb +300 -0
- data/lib/openapi_client/models/tracking_event_certified.rb +419 -0
- data/lib/openapi_client/models/tracking_event_details.rb +308 -0
- data/lib/openapi_client/models/tracking_event_normal.rb +409 -0
- data/lib/openapi_client/models/upload.rb +498 -0
- data/lib/openapi_client/models/upload_create_export.rb +283 -0
- data/lib/openapi_client/models/upload_file.rb +283 -0
- data/lib/openapi_client/models/upload_state.rb +42 -0
- data/lib/openapi_client/models/upload_updatable.rb +267 -0
- data/lib/openapi_client/models/upload_writable.rb +271 -0
- data/lib/openapi_client/models/uploads_metadata.rb +237 -0
- data/lib/openapi_client/models/us_autocompletions.rb +328 -0
- data/lib/openapi_client/models/us_autocompletions_writable.rb +274 -0
- data/lib/openapi_client/models/us_components.rb +788 -0
- data/lib/openapi_client/models/us_verification.rb +461 -0
- data/lib/openapi_client/models/us_verification_or_error.rb +459 -0
- data/lib/openapi_client/models/us_verifications.rb +250 -0
- data/lib/openapi_client/models/us_verifications_writable.rb +421 -0
- data/lib/openapi_client/models/validation_error.rb +263 -0
- data/lib/openapi_client/models/zip.rb +363 -0
- data/lib/openapi_client/models/zip_code_type.rb +40 -0
- data/lib/openapi_client/models/zip_editable.rb +246 -0
- data/lib/openapi_client/models/zip_lookup_city.rb +331 -0
- data/lib/openapi_client/version.rb +15 -0
- data/lib/openapi_client.rb +212 -0
- data/openapi_client.gemspec +37 -0
- data/spec/api/addresses_api_spec.rb +88 -0
- data/spec/api/bank_accounts_api_spec.rb +101 -0
- data/spec/api/billing_groups_api_spec.rb +89 -0
- data/spec/api/campaigns_api_spec.rb +100 -0
- data/spec/api/card_orders_api_spec.rb +62 -0
- data/spec/api/cards_api_spec.rb +99 -0
- data/spec/api/checks_api_spec.rb +93 -0
- data/spec/api/creatives_api_spec.rb +73 -0
- data/spec/api/default_api_spec.rb +46 -0
- data/spec/api/identity_validation_api_spec.rb +47 -0
- data/spec/api/intl_autocompletions_api_spec.rb +48 -0
- data/spec/api/intl_verifications_api_spec.rb +60 -0
- data/spec/api/letters_api_spec.rb +94 -0
- data/spec/api/postcards_api_spec.rb +94 -0
- data/spec/api/reverse_geocode_lookups_api_spec.rb +48 -0
- data/spec/api/self_mailers_api_spec.rb +94 -0
- data/spec/api/template_versions_api_spec.rb +105 -0
- data/spec/api/templates_api_spec.rb +101 -0
- data/spec/api/uploads_api_spec.rb +135 -0
- data/spec/api/us_autocompletions_api_spec.rb +47 -0
- data/spec/api/us_verifications_api_spec.rb +61 -0
- data/spec/api/zip_lookups_api_spec.rb +47 -0
- data/spec/api_client_spec.rb +226 -0
- data/spec/configuration_spec.rb +42 -0
- data/spec/spec_helper.rb +107 -13
- metadata +452 -139
- data/.gitignore +0 -18
- data/.travis.yml +0 -13
- data/CHANGELOG.md +0 -129
- data/CONTRIBUTING.md +0 -19
- data/LICENSE.txt +0 -22
- data/examples/README.md +0 -33
- data/examples/checks.rb +0 -48
- data/examples/csv_checks/create_checks.rb +0 -47
- data/examples/csv_checks/input.csv +0 -6
- data/examples/csv_letters/create_letters.rb +0 -40
- data/examples/csv_letters/input.csv +0 -6
- data/examples/csv_letters/letter_template.html +0 -33
- data/examples/csv_postcards/create_postcards.rb +0 -45
- data/examples/csv_postcards/input.csv +0 -7
- data/examples/csv_postcards/postcard_back.html +0 -38
- data/examples/csv_postcards/postcard_front.html +0 -25
- data/examples/csv_verify/input.csv +0 -7
- data/examples/csv_verify/verify.rb +0 -36
- data/examples/letters.rb +0 -72
- data/examples/postcards.rb +0 -86
- data/lib/lob/client.rb +0 -71
- data/lib/lob/errors/invalid_request_error.rb +0 -4
- data/lib/lob/errors/lob_error.rb +0 -20
- data/lib/lob/resources/address.rb +0 -14
- data/lib/lob/resources/bank_account.rb +0 -30
- data/lib/lob/resources/check.rb +0 -14
- data/lib/lob/resources/group.rb +0 -14
- data/lib/lob/resources/groups_member.rb +0 -66
- data/lib/lob/resources/intl_verifications.rb +0 -26
- data/lib/lob/resources/letter.rb +0 -14
- data/lib/lob/resources/postcard.rb +0 -14
- data/lib/lob/resources/resource_base.rb +0 -142
- data/lib/lob/resources/us_autocompletions.rb +0 -26
- data/lib/lob/resources/us_verifications.rb +0 -27
- data/lib/lob/resources/us_zip_lookups.rb +0 -26
- data/lib/lob/version.rb +0 -3
- data/lob.gemspec +0 -28
- data/spec/lob/errors/lob_error_spec.rb +0 -19
- data/spec/lob/resources/address_spec.rb +0 -55
- data/spec/lob/resources/bank_account_spec.rb +0 -60
- data/spec/lob/resources/check_spec.rb +0 -119
- data/spec/lob/resources/group_spec.rb +0 -50
- data/spec/lob/resources/intl_verifications_spec.rb +0 -25
- data/spec/lob/resources/letter_spec.rb +0 -114
- data/spec/lob/resources/member_spec.rb +0 -65
- data/spec/lob/resources/postcard_spec.rb +0 -160
- data/spec/lob/resources/resource_base_spec.rb +0 -75
- data/spec/lob/resources/us_autocompletions_spec.rb +0 -24
- data/spec/lob/resources/us_verifications_spec.rb +0 -31
- data/spec/lob/resources/us_zip_lookups_spec.rb +0 -23
- data/spec/lob_spec.rb +0 -48
- data/spec/samples/8.5x11.pdf +0 -0
- data/spec/samples/postcardback.pdf +2 -2287
- data/spec/samples/postcardfront.pdf +1 -1549
@@ -0,0 +1,737 @@
|
|
1
|
+
=begin
|
2
|
+
#Lob
|
3
|
+
|
4
|
+
#The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. <p> Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.3.0
|
7
|
+
Contact: lob-openapi@lob.com
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 5.2.1
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'date'
|
14
|
+
require 'time'
|
15
|
+
|
16
|
+
module Lob
|
17
|
+
class Letter
|
18
|
+
attr_accessor :to
|
19
|
+
|
20
|
+
attr_accessor :from
|
21
|
+
|
22
|
+
attr_accessor :carrier
|
23
|
+
|
24
|
+
attr_accessor :thumbnails
|
25
|
+
|
26
|
+
# A date in YYYY-MM-DD format of the mailpiece's expected delivery date based on its `send_date`.
|
27
|
+
attr_accessor :expected_delivery_date
|
28
|
+
|
29
|
+
# A timestamp in ISO 8601 format of the date the resource was created.
|
30
|
+
attr_accessor :date_created
|
31
|
+
|
32
|
+
# A timestamp in ISO 8601 format of the date the resource was last modified.
|
33
|
+
attr_accessor :date_modified
|
34
|
+
|
35
|
+
# Only returned if the resource has been successfully deleted.
|
36
|
+
attr_accessor :deleted
|
37
|
+
|
38
|
+
# Unique identifier prefixed with `ltr_`.
|
39
|
+
attr_accessor :id
|
40
|
+
|
41
|
+
# Unique identifier prefixed with `tmpl_`. ID of a saved [HTML template](#section/HTML-Templates).
|
42
|
+
attr_accessor :template_id
|
43
|
+
|
44
|
+
# Unique identifier prefixed with `vrsn_`.
|
45
|
+
attr_accessor :template_version_id
|
46
|
+
|
47
|
+
# A [signed link](#section/Asset-URLs) served over HTTPS. The link returned will expire in 30 days to prevent mis-sharing. Each time a GET request is initiated, a new signed URL will be generated.
|
48
|
+
attr_accessor :url
|
49
|
+
|
50
|
+
attr_accessor :object
|
51
|
+
|
52
|
+
# An internal description that identifies this resource. Must be no longer than 255 characters.
|
53
|
+
attr_accessor :description
|
54
|
+
|
55
|
+
# Use metadata to store custom information for tagging and labeling back to your internal systems. Must be an object with up to 20 key-value pairs. Keys must be at most 40 characters and values must be at most 500 characters. Neither can contain the characters `\"` and `\\`. i.e. '{\"customer_id\" : \"NEWYORK2015\"}' Nested objects are not supported. See [Metadata](#section/Metadata) for more information.
|
56
|
+
attr_accessor :metadata
|
57
|
+
|
58
|
+
# You can input a merge variable payload object to your template to render dynamic content. For example, if you have a template like: `{{variable_name}}`, pass in `{\"variable_name\": \"Harry\"}` to render `Harry`. `merge_variables` must be an object. Any type of value is accepted as long as the object is valid JSON; you can use `strings`, `numbers`, `booleans`, `arrays`, `objects`, or `null`. The max length of the object is 25,000 characters. If you call `JSON.stringify` on your object, it can be no longer than 25,000 characters. Your variable names cannot contain any whitespace or any of the following special characters: `!`, `\"`, `#`, `%`, `&`, `'`, `(`, `)`, `*`, `+`, `,`, `/`, `;`, `<`, `=`, `>`, `@`, `[`, `\\`, `]`, `^`, `` ` ``, `{`, `|`, `}`, `~`. More instructions can be found in [our guide to using html and merge variables](https://lob.com/resources/guides/general/using-html-and-merge-variables). Depending on your [Merge Variable strictness](https://dashboard.lob.com/#/settings/account) setting, if you define variables in your HTML but do not pass them here, you will either receive an error or the variable will render as an empty string.
|
59
|
+
attr_accessor :merge_variables
|
60
|
+
|
61
|
+
# A timestamp in ISO 8601 format which specifies a date after the current time and up to 180 days in the future to send the letter off for production. Setting a send date overrides the default [cancellation window](#section/Cancellation-Windows) applied to the mailpiece. Until the `send_date` has passed, the mailpiece can be canceled. If a date in the format `2017-11-01` is passed, it will evaluate to midnight UTC of that date (`2017-11-01T00:00:00.000Z`). If a datetime is passed, that exact time will be used. A `send_date` passed with no time zone will default to UTC, while a `send_date` passed with a time zone will be converted to UTC.
|
62
|
+
attr_accessor :send_date
|
63
|
+
|
64
|
+
# Add an extra service to your letter. See [pricing](https://www.lob.com/pricing/print-mail#compare) for extra costs incurred.
|
65
|
+
attr_accessor :extra_service
|
66
|
+
|
67
|
+
# The tracking number, if applicable, will appear here when it becomes available. Dummy tracking numbers are not created in test mode.
|
68
|
+
attr_accessor :tracking_number
|
69
|
+
|
70
|
+
# Tracking events are not populated for registered or regular (no extra service) letters.
|
71
|
+
attr_accessor :tracking_events
|
72
|
+
|
73
|
+
# Specifies the address the return envelope will be sent back to. This is an optional argument that is available if an account is signed up for the return envelope tracking beta, and has `return_envelope`, and `perforated_page` fields populated in the API request.
|
74
|
+
attr_accessor :return_address
|
75
|
+
|
76
|
+
attr_accessor :mail_type
|
77
|
+
|
78
|
+
# Set this key to `true` if you would like to print in color. Set to `false` if you would like to print in black and white.
|
79
|
+
attr_accessor :color
|
80
|
+
|
81
|
+
# Set this attribute to `true` for double sided printing, or `false` for for single sided printing. Defaults to `true`.
|
82
|
+
attr_accessor :double_sided
|
83
|
+
|
84
|
+
# Specifies the location of the address information that will show through the double-window envelope.
|
85
|
+
attr_accessor :address_placement
|
86
|
+
|
87
|
+
attr_accessor :return_envelope
|
88
|
+
|
89
|
+
# Required if `return_envelope` is `true`. The number of the page that should be perforated for use with the return envelope. Must be greater than or equal to `1`. The blank page added by `address_placement=insert_blank_page` will be ignored when considering the perforated page number. To see how perforation will impact your letter design, view our [perforation guide](https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/letter_perf_template.pdf).
|
90
|
+
attr_accessor :perforated_page
|
91
|
+
|
92
|
+
attr_accessor :custom_envelope
|
93
|
+
|
94
|
+
# The unique ID of the associated campaign if the resource was generated from a campaign.
|
95
|
+
attr_accessor :campaign_id
|
96
|
+
|
97
|
+
attr_accessor :use_type
|
98
|
+
|
99
|
+
class EnumAttributeValidator
|
100
|
+
attr_reader :datatype
|
101
|
+
attr_reader :allowable_values
|
102
|
+
|
103
|
+
def initialize(datatype, allowable_values)
|
104
|
+
@allowable_values = allowable_values.map do |value|
|
105
|
+
case datatype.to_s
|
106
|
+
when /Integer/i
|
107
|
+
value.to_i
|
108
|
+
when /Float/i
|
109
|
+
value.to_f
|
110
|
+
else
|
111
|
+
value
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def valid?(value)
|
117
|
+
!value || allowable_values.include?(value)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
122
|
+
def self.attribute_map
|
123
|
+
{
|
124
|
+
:'to' => :'to',
|
125
|
+
:'from' => :'from',
|
126
|
+
:'carrier' => :'carrier',
|
127
|
+
:'thumbnails' => :'thumbnails',
|
128
|
+
:'expected_delivery_date' => :'expected_delivery_date',
|
129
|
+
:'date_created' => :'date_created',
|
130
|
+
:'date_modified' => :'date_modified',
|
131
|
+
:'deleted' => :'deleted',
|
132
|
+
:'id' => :'id',
|
133
|
+
:'template_id' => :'template_id',
|
134
|
+
:'template_version_id' => :'template_version_id',
|
135
|
+
:'url' => :'url',
|
136
|
+
:'object' => :'object',
|
137
|
+
:'description' => :'description',
|
138
|
+
:'metadata' => :'metadata',
|
139
|
+
:'merge_variables' => :'merge_variables',
|
140
|
+
:'send_date' => :'send_date',
|
141
|
+
:'extra_service' => :'extra_service',
|
142
|
+
:'tracking_number' => :'tracking_number',
|
143
|
+
:'tracking_events' => :'tracking_events',
|
144
|
+
:'return_address' => :'return_address',
|
145
|
+
:'mail_type' => :'mail_type',
|
146
|
+
:'color' => :'color',
|
147
|
+
:'double_sided' => :'double_sided',
|
148
|
+
:'address_placement' => :'address_placement',
|
149
|
+
:'return_envelope' => :'return_envelope',
|
150
|
+
:'perforated_page' => :'perforated_page',
|
151
|
+
:'custom_envelope' => :'custom_envelope',
|
152
|
+
:'campaign_id' => :'campaign_id',
|
153
|
+
:'use_type' => :'use_type'
|
154
|
+
}
|
155
|
+
end
|
156
|
+
|
157
|
+
# Returns all the JSON keys this model knows about
|
158
|
+
def self.acceptable_attributes
|
159
|
+
attribute_map.values
|
160
|
+
end
|
161
|
+
|
162
|
+
# Attribute type mapping.
|
163
|
+
def self.openapi_types
|
164
|
+
{
|
165
|
+
:'to' => :'Address',
|
166
|
+
:'from' => :'Address',
|
167
|
+
:'carrier' => :'String',
|
168
|
+
:'thumbnails' => :'Array<Thumbnail>',
|
169
|
+
:'expected_delivery_date' => :'Date',
|
170
|
+
:'date_created' => :'Time',
|
171
|
+
:'date_modified' => :'Time',
|
172
|
+
:'deleted' => :'Boolean',
|
173
|
+
:'id' => :'String',
|
174
|
+
:'template_id' => :'String',
|
175
|
+
:'template_version_id' => :'String',
|
176
|
+
:'url' => :'String',
|
177
|
+
:'object' => :'String',
|
178
|
+
:'description' => :'String',
|
179
|
+
:'metadata' => :'Hash<String, String>',
|
180
|
+
:'merge_variables' => :'Object',
|
181
|
+
:'send_date' => :'Time',
|
182
|
+
:'extra_service' => :'String',
|
183
|
+
:'tracking_number' => :'String',
|
184
|
+
:'tracking_events' => :'Array<TrackingEventNormal>',
|
185
|
+
:'return_address' => Array[:'AddressEditable', :'String'],
|
186
|
+
:'mail_type' => :'MailType',
|
187
|
+
:'color' => :'Boolean',
|
188
|
+
:'double_sided' => :'Boolean',
|
189
|
+
:'address_placement' => :'String',
|
190
|
+
:'return_envelope' => Array[:'ReturnEnvelope', :'Boolean'],
|
191
|
+
:'perforated_page' => :'Integer',
|
192
|
+
:'custom_envelope' => :'LetterCustomEnvelope',
|
193
|
+
:'campaign_id' => :'String',
|
194
|
+
:'use_type' => :'LtrUseType'
|
195
|
+
}
|
196
|
+
end
|
197
|
+
|
198
|
+
# List of attributes with nullable: true
|
199
|
+
def self.openapi_nullable
|
200
|
+
Set.new([
|
201
|
+
:'description',
|
202
|
+
:'merge_variables',
|
203
|
+
:'tracking_number',
|
204
|
+
:'return_address',
|
205
|
+
:'return_envelope',
|
206
|
+
:'perforated_page',
|
207
|
+
:'custom_envelope',
|
208
|
+
:'campaign_id',
|
209
|
+
:'use_type'
|
210
|
+
])
|
211
|
+
end
|
212
|
+
|
213
|
+
# Initializes the object
|
214
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
215
|
+
def initialize(attributes = {})
|
216
|
+
if (!attributes.is_a?(Hash))
|
217
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Lob::Letter` initialize method"
|
218
|
+
end
|
219
|
+
|
220
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
221
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
222
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
223
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Lob::Letter`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
224
|
+
end
|
225
|
+
h[k.to_sym] = v
|
226
|
+
}
|
227
|
+
|
228
|
+
if attributes.key?(:'to')
|
229
|
+
self.to = attributes[:'to']
|
230
|
+
end
|
231
|
+
|
232
|
+
if attributes.key?(:'from')
|
233
|
+
self.from = attributes[:'from']
|
234
|
+
end
|
235
|
+
|
236
|
+
if attributes.key?(:'carrier')
|
237
|
+
self.carrier = attributes[:'carrier']
|
238
|
+
else
|
239
|
+
self.carrier = 'USPS'
|
240
|
+
end
|
241
|
+
|
242
|
+
if attributes.key?(:'thumbnails')
|
243
|
+
if (value = attributes[:'thumbnails']).is_a?(Array)
|
244
|
+
self.thumbnails = value
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
if attributes.key?(:'expected_delivery_date')
|
249
|
+
self.expected_delivery_date = attributes[:'expected_delivery_date']
|
250
|
+
end
|
251
|
+
|
252
|
+
if attributes.key?(:'date_created')
|
253
|
+
self.date_created = attributes[:'date_created']
|
254
|
+
end
|
255
|
+
|
256
|
+
if attributes.key?(:'date_modified')
|
257
|
+
self.date_modified = attributes[:'date_modified']
|
258
|
+
end
|
259
|
+
|
260
|
+
if attributes.key?(:'deleted')
|
261
|
+
self.deleted = attributes[:'deleted']
|
262
|
+
end
|
263
|
+
|
264
|
+
if attributes.key?(:'id')
|
265
|
+
self.id = attributes[:'id']
|
266
|
+
end
|
267
|
+
|
268
|
+
if attributes.key?(:'template_id')
|
269
|
+
self.template_id = attributes[:'template_id']
|
270
|
+
end
|
271
|
+
|
272
|
+
if attributes.key?(:'template_version_id')
|
273
|
+
self.template_version_id = attributes[:'template_version_id']
|
274
|
+
end
|
275
|
+
|
276
|
+
if attributes.key?(:'url')
|
277
|
+
self.url = attributes[:'url']
|
278
|
+
end
|
279
|
+
|
280
|
+
if attributes.key?(:'object')
|
281
|
+
self.object = attributes[:'object']
|
282
|
+
else
|
283
|
+
self.object = 'letter'
|
284
|
+
end
|
285
|
+
|
286
|
+
if attributes.key?(:'description')
|
287
|
+
self.description = attributes[:'description']
|
288
|
+
end
|
289
|
+
|
290
|
+
if attributes.key?(:'metadata')
|
291
|
+
if (value = attributes[:'metadata']).is_a?(Hash)
|
292
|
+
self.metadata = value
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
if attributes.key?(:'merge_variables')
|
297
|
+
self.merge_variables = attributes[:'merge_variables']
|
298
|
+
end
|
299
|
+
|
300
|
+
if attributes.key?(:'send_date')
|
301
|
+
self.send_date = attributes[:'send_date']
|
302
|
+
end
|
303
|
+
|
304
|
+
if attributes.key?(:'extra_service')
|
305
|
+
self.extra_service = attributes[:'extra_service']
|
306
|
+
end
|
307
|
+
|
308
|
+
if attributes.key?(:'tracking_number')
|
309
|
+
self.tracking_number = attributes[:'tracking_number']
|
310
|
+
end
|
311
|
+
|
312
|
+
if attributes.key?(:'tracking_events')
|
313
|
+
if (value = attributes[:'tracking_events']).is_a?(Array)
|
314
|
+
self.tracking_events = value
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
if attributes.key?(:'return_address')
|
319
|
+
self.return_address = attributes[:'return_address']
|
320
|
+
end
|
321
|
+
|
322
|
+
if attributes.key?(:'mail_type')
|
323
|
+
self.mail_type = attributes[:'mail_type']
|
324
|
+
else
|
325
|
+
self.mail_type = 'usps_first_class'
|
326
|
+
end
|
327
|
+
|
328
|
+
if attributes.key?(:'color')
|
329
|
+
self.color = attributes[:'color']
|
330
|
+
end
|
331
|
+
|
332
|
+
if attributes.key?(:'double_sided')
|
333
|
+
self.double_sided = attributes[:'double_sided']
|
334
|
+
else
|
335
|
+
self.double_sided = true
|
336
|
+
end
|
337
|
+
|
338
|
+
if attributes.key?(:'address_placement')
|
339
|
+
self.address_placement = attributes[:'address_placement']
|
340
|
+
else
|
341
|
+
self.address_placement = 'top_first_page'
|
342
|
+
end
|
343
|
+
|
344
|
+
if attributes.key?(:'return_envelope')
|
345
|
+
self.return_envelope = attributes[:'return_envelope']
|
346
|
+
end
|
347
|
+
|
348
|
+
if attributes.key?(:'perforated_page')
|
349
|
+
self.perforated_page = attributes[:'perforated_page']
|
350
|
+
end
|
351
|
+
|
352
|
+
if attributes.key?(:'custom_envelope')
|
353
|
+
self.custom_envelope = attributes[:'custom_envelope']
|
354
|
+
end
|
355
|
+
|
356
|
+
if attributes.key?(:'campaign_id')
|
357
|
+
self.campaign_id = attributes[:'campaign_id']
|
358
|
+
end
|
359
|
+
|
360
|
+
if attributes.key?(:'use_type')
|
361
|
+
self.use_type = attributes[:'use_type']
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
366
|
+
# @return Array for valid properties with the reasons
|
367
|
+
def list_invalid_properties
|
368
|
+
invalid_properties = Array.new
|
369
|
+
if @to.nil?
|
370
|
+
invalid_properties.push('invalid value for "to", to cannot be nil.')
|
371
|
+
end
|
372
|
+
|
373
|
+
if @from.nil?
|
374
|
+
invalid_properties.push('invalid value for "from", from cannot be nil.')
|
375
|
+
end
|
376
|
+
|
377
|
+
if @date_created.nil?
|
378
|
+
invalid_properties.push('invalid value for "date_created", date_created cannot be nil.')
|
379
|
+
end
|
380
|
+
|
381
|
+
if @date_modified.nil?
|
382
|
+
invalid_properties.push('invalid value for "date_modified", date_modified cannot be nil.')
|
383
|
+
end
|
384
|
+
|
385
|
+
if @id.nil?
|
386
|
+
invalid_properties.push('invalid value for "id", id cannot be nil.')
|
387
|
+
end
|
388
|
+
|
389
|
+
pattern = Regexp.new(/^ltr_[a-zA-Z0-9]+$/)
|
390
|
+
if @id !~ pattern
|
391
|
+
invalid_properties.push("invalid value for \"id\", must conform to the pattern #{pattern}.")
|
392
|
+
end
|
393
|
+
|
394
|
+
pattern = Regexp.new(/^tmpl_[a-zA-Z0-9]+$/)
|
395
|
+
if !@template_id.nil? && @template_id !~ pattern
|
396
|
+
invalid_properties.push("invalid value for \"template_id\", must conform to the pattern #{pattern}.")
|
397
|
+
end
|
398
|
+
|
399
|
+
pattern = Regexp.new(/^vrsn_[a-zA-Z0-9]+$/)
|
400
|
+
if !@template_version_id.nil? && @template_version_id !~ pattern
|
401
|
+
invalid_properties.push("invalid value for \"template_version_id\", must conform to the pattern #{pattern}.")
|
402
|
+
end
|
403
|
+
|
404
|
+
pattern = Regexp.new(/^https:\/\/(lob-assets|lob-assets-staging)\.com\/(letters|postcards|bank-accounts|checks|self-mailers|cards)\/[a-z]{3,4}_[a-z0-9]{15,16}(\.pdf|_thumb_[a-z]+_[0-9]+\.png)\?(version=[a-z0-9-]*&)?expires=[0-9]{10}&signature=[a-zA-Z0-9_-]+$/)
|
405
|
+
if !@url.nil? && @url !~ pattern
|
406
|
+
invalid_properties.push("invalid value for \"url\", must conform to the pattern #{pattern}.")
|
407
|
+
end
|
408
|
+
|
409
|
+
if @object.nil?
|
410
|
+
invalid_properties.push('invalid value for "object", object cannot be nil.')
|
411
|
+
end
|
412
|
+
|
413
|
+
if !@description.nil? && @description.to_s.length > 255
|
414
|
+
invalid_properties.push('invalid value for "description", the character length must be smaller than or equal to 255.')
|
415
|
+
end
|
416
|
+
|
417
|
+
if !@tracking_events.nil? && @tracking_events.length > 0
|
418
|
+
invalid_properties.push('invalid value for "tracking_events", number of items must be less than or equal to 0.')
|
419
|
+
end
|
420
|
+
|
421
|
+
invalid_properties
|
422
|
+
end
|
423
|
+
|
424
|
+
# Check to see if the all the properties in the model are valid
|
425
|
+
# @return true if the model is valid
|
426
|
+
def valid?
|
427
|
+
return false if @to.nil?
|
428
|
+
return false if @from.nil?
|
429
|
+
carrier_validator = EnumAttributeValidator.new('String', ["USPS"])
|
430
|
+
return false unless carrier_validator.valid?(@carrier)
|
431
|
+
return false if @date_created.nil?
|
432
|
+
return false if @date_modified.nil?
|
433
|
+
return false if @id.nil?
|
434
|
+
return false if @id !~ Regexp.new(/^ltr_[a-zA-Z0-9]+$/)
|
435
|
+
return false if !@template_id.nil? && @template_id !~ Regexp.new(/^tmpl_[a-zA-Z0-9]+$/)
|
436
|
+
return false if !@template_version_id.nil? && @template_version_id !~ Regexp.new(/^vrsn_[a-zA-Z0-9]+$/)
|
437
|
+
return false if !@url.nil? && @url !~ Regexp.new(/^https:\/\/(lob-assets|lob-assets-staging)\.com\/(letters|postcards|bank-accounts|checks|self-mailers|cards)\/[a-z]{3,4}_[a-z0-9]{15,16}(\.pdf|_thumb_[a-z]+_[0-9]+\.png)\?(version=[a-z0-9-]*&)?expires=[0-9]{10}&signature=[a-zA-Z0-9_-]+$/)
|
438
|
+
return false if @object.nil?
|
439
|
+
object_validator = EnumAttributeValidator.new('String', ["letter"])
|
440
|
+
return false unless object_validator.valid?(@object)
|
441
|
+
return false if !@description.nil? && @description.to_s.length > 255
|
442
|
+
return false if !@tracking_events.nil? && @tracking_events.length > 0
|
443
|
+
address_placement_validator = EnumAttributeValidator.new('String', ["top_first_page", "insert_blank_page", "bottom_first_page_center", "bottom_first_page"])
|
444
|
+
return false unless address_placement_validator.valid?(@address_placement)
|
445
|
+
true
|
446
|
+
end
|
447
|
+
|
448
|
+
# Custom attribute writer method checking allowed values (enum).
|
449
|
+
# @param [Object] carrier Object to be assigned
|
450
|
+
def carrier=(carrier)
|
451
|
+
validator = EnumAttributeValidator.new('String', ["USPS"])
|
452
|
+
unless validator.valid?(carrier)
|
453
|
+
fail ArgumentError, "invalid value for \"carrier\", must be one of #{validator.allowable_values}."
|
454
|
+
end
|
455
|
+
@carrier = carrier
|
456
|
+
end
|
457
|
+
|
458
|
+
# Custom attribute writer method with validation
|
459
|
+
# @param [Object] id Value to be assigned
|
460
|
+
def id=(id)
|
461
|
+
if id.nil?
|
462
|
+
fail ArgumentError, 'id cannot be nil'
|
463
|
+
end
|
464
|
+
|
465
|
+
pattern = Regexp.new(/^ltr_[a-zA-Z0-9]+$/)
|
466
|
+
if id !~ pattern
|
467
|
+
fail ArgumentError, "invalid value for \"id\", must conform to the pattern #{pattern}."
|
468
|
+
end
|
469
|
+
|
470
|
+
@id = id
|
471
|
+
end
|
472
|
+
|
473
|
+
# Custom attribute writer method with validation
|
474
|
+
# @param [Object] template_id Value to be assigned
|
475
|
+
def template_id=(template_id)
|
476
|
+
pattern = Regexp.new(/^tmpl_[a-zA-Z0-9]+$/)
|
477
|
+
if !template_id.nil? && template_id !~ pattern
|
478
|
+
fail ArgumentError, "invalid value for \"template_id\", must conform to the pattern #{pattern}."
|
479
|
+
end
|
480
|
+
|
481
|
+
@template_id = template_id
|
482
|
+
end
|
483
|
+
|
484
|
+
# Custom attribute writer method with validation
|
485
|
+
# @param [Object] template_version_id Value to be assigned
|
486
|
+
def template_version_id=(template_version_id)
|
487
|
+
pattern = Regexp.new(/^vrsn_[a-zA-Z0-9]+$/)
|
488
|
+
if !template_version_id.nil? && template_version_id !~ pattern
|
489
|
+
fail ArgumentError, "invalid value for \"template_version_id\", must conform to the pattern #{pattern}."
|
490
|
+
end
|
491
|
+
|
492
|
+
@template_version_id = template_version_id
|
493
|
+
end
|
494
|
+
|
495
|
+
# Custom attribute writer method with validation
|
496
|
+
# @param [Object] url Value to be assigned
|
497
|
+
def url=(url)
|
498
|
+
pattern = Regexp.new(/^https:\/\/(lob-assets|lob-assets-staging)\.com\/(letters|postcards|bank-accounts|checks|self-mailers|cards)\/[a-z]{3,4}_[a-z0-9]{15,16}(\.pdf|_thumb_[a-z]+_[0-9]+\.png)\?(version=[a-z0-9-]*&)?expires=[0-9]{10}&signature=[a-zA-Z0-9_-]+$/)
|
499
|
+
if !url.nil? && url !~ pattern
|
500
|
+
fail ArgumentError, "invalid value for \"url\", must conform to the pattern #{pattern}."
|
501
|
+
end
|
502
|
+
|
503
|
+
@url = url
|
504
|
+
end
|
505
|
+
|
506
|
+
# Custom attribute writer method checking allowed values (enum).
|
507
|
+
# @param [Object] object Object to be assigned
|
508
|
+
def object=(object)
|
509
|
+
validator = EnumAttributeValidator.new('String', ["letter"])
|
510
|
+
unless validator.valid?(object)
|
511
|
+
fail ArgumentError, "invalid value for \"object\", must be one of #{validator.allowable_values}."
|
512
|
+
end
|
513
|
+
@object = object
|
514
|
+
end
|
515
|
+
|
516
|
+
# Custom attribute writer method with validation
|
517
|
+
# @param [Object] description Value to be assigned
|
518
|
+
def description=(description)
|
519
|
+
if !description.nil? && description.to_s.length > 255
|
520
|
+
fail ArgumentError, 'invalid value for "description", the character length must be smaller than or equal to 255.'
|
521
|
+
end
|
522
|
+
|
523
|
+
@description = description
|
524
|
+
end
|
525
|
+
|
526
|
+
# Custom attribute writer method with validation
|
527
|
+
# @param [Object] metadata Value to be assigned
|
528
|
+
def metadata=(metadata)
|
529
|
+
@metadata = metadata
|
530
|
+
end
|
531
|
+
|
532
|
+
# Custom attribute writer method with validation
|
533
|
+
# @param [Object] merge_variables Value to be assigned
|
534
|
+
def merge_variables=(merge_variables)
|
535
|
+
@merge_variables = merge_variables
|
536
|
+
end
|
537
|
+
|
538
|
+
# Custom attribute writer method with validation
|
539
|
+
# @param [Object] tracking_events Value to be assigned
|
540
|
+
def tracking_events=(tracking_events)
|
541
|
+
if !tracking_events.nil? && tracking_events.length > 0
|
542
|
+
fail ArgumentError, 'invalid value for "tracking_events", number of items must be less than or equal to 0.'
|
543
|
+
end
|
544
|
+
|
545
|
+
@tracking_events = tracking_events
|
546
|
+
end
|
547
|
+
|
548
|
+
# Custom attribute writer method checking allowed values (enum).
|
549
|
+
# @param [Object] address_placement Object to be assigned
|
550
|
+
def address_placement=(address_placement)
|
551
|
+
validator = EnumAttributeValidator.new('String', ["top_first_page", "insert_blank_page", "bottom_first_page_center", "bottom_first_page"])
|
552
|
+
unless validator.valid?(address_placement)
|
553
|
+
fail ArgumentError, "invalid value for \"address_placement\", must be one of #{validator.allowable_values}."
|
554
|
+
end
|
555
|
+
@address_placement = address_placement
|
556
|
+
end
|
557
|
+
|
558
|
+
# Checks equality by comparing each attribute.
|
559
|
+
# @param [Object] Object to be compared
|
560
|
+
def ==(o)
|
561
|
+
return true if self.equal?(o)
|
562
|
+
self.class == o.class &&
|
563
|
+
to == o.to &&
|
564
|
+
from == o.from &&
|
565
|
+
carrier == o.carrier &&
|
566
|
+
thumbnails == o.thumbnails &&
|
567
|
+
expected_delivery_date == o.expected_delivery_date &&
|
568
|
+
date_created == o.date_created &&
|
569
|
+
date_modified == o.date_modified &&
|
570
|
+
deleted == o.deleted &&
|
571
|
+
id == o.id &&
|
572
|
+
template_id == o.template_id &&
|
573
|
+
template_version_id == o.template_version_id &&
|
574
|
+
url == o.url &&
|
575
|
+
object == o.object &&
|
576
|
+
description == o.description &&
|
577
|
+
metadata == o.metadata &&
|
578
|
+
merge_variables == o.merge_variables &&
|
579
|
+
send_date == o.send_date &&
|
580
|
+
extra_service == o.extra_service &&
|
581
|
+
tracking_number == o.tracking_number &&
|
582
|
+
tracking_events == o.tracking_events &&
|
583
|
+
return_address == o.return_address &&
|
584
|
+
mail_type == o.mail_type &&
|
585
|
+
color == o.color &&
|
586
|
+
double_sided == o.double_sided &&
|
587
|
+
address_placement == o.address_placement &&
|
588
|
+
return_envelope == o.return_envelope &&
|
589
|
+
perforated_page == o.perforated_page &&
|
590
|
+
custom_envelope == o.custom_envelope &&
|
591
|
+
campaign_id == o.campaign_id &&
|
592
|
+
use_type == o.use_type
|
593
|
+
end
|
594
|
+
|
595
|
+
# @see the `==` method
|
596
|
+
# @param [Object] Object to be compared
|
597
|
+
def eql?(o)
|
598
|
+
self == o
|
599
|
+
end
|
600
|
+
|
601
|
+
# Calculates hash code according to all attributes.
|
602
|
+
# @return [Integer] Hash code
|
603
|
+
def hash
|
604
|
+
[to, from, carrier, thumbnails, expected_delivery_date, date_created, date_modified, deleted, id, template_id, template_version_id, url, object, description, metadata, merge_variables, send_date, extra_service, tracking_number, tracking_events, return_address, mail_type, color, double_sided, address_placement, return_envelope, perforated_page, custom_envelope, campaign_id, use_type].hash
|
605
|
+
end
|
606
|
+
|
607
|
+
|
608
|
+
# Builds the object from hash
|
609
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
610
|
+
# @return [Object] Returns the model itself
|
611
|
+
def self.build_from_hash(attributes)
|
612
|
+
new.build_from_hash(attributes)
|
613
|
+
end
|
614
|
+
|
615
|
+
# Builds the object from hash
|
616
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
617
|
+
# @return [Object] Returns the model itself
|
618
|
+
def build_from_hash(attributes)
|
619
|
+
return nil unless attributes.is_a?(Hash)
|
620
|
+
attributes = attributes.transform_keys(&:to_sym)
|
621
|
+
self.class.openapi_types.each_pair do |key, type|
|
622
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
623
|
+
self.send("#{key}=", nil) # // guardrails-disable-line
|
624
|
+
elsif type =~ /\AArray<(.*)>/i
|
625
|
+
# check to ensure the input is an array given that the attribute
|
626
|
+
# is documented as an array but the input is not
|
627
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
628
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) # // guardrails-disable-line
|
629
|
+
end
|
630
|
+
elsif !attributes[self.class.attribute_map[key]].nil? && type.kind_of?(Array)
|
631
|
+
for base_type in type do
|
632
|
+
res = _deserialize(base_type, attributes[self.class.attribute_map[key]])
|
633
|
+
if !res.nil?
|
634
|
+
self.send("#{key}=", res) # // guardrails-disable-line
|
635
|
+
break
|
636
|
+
end
|
637
|
+
end
|
638
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
639
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) # // guardrails-disable-line
|
640
|
+
end
|
641
|
+
end
|
642
|
+
|
643
|
+
self
|
644
|
+
end
|
645
|
+
|
646
|
+
# Deserializes the data based on type
|
647
|
+
# @param string type Data type
|
648
|
+
# @param string value Value to be deserialized
|
649
|
+
# @return [Object] Deserialized data
|
650
|
+
def _deserialize(type, value)
|
651
|
+
case type.to_sym
|
652
|
+
when :Time
|
653
|
+
Time.parse(value)
|
654
|
+
when :Date
|
655
|
+
Date.parse(value)
|
656
|
+
when :String
|
657
|
+
value.to_s
|
658
|
+
when :Integer
|
659
|
+
value.to_i
|
660
|
+
when :Float
|
661
|
+
value.to_f
|
662
|
+
when :Boolean
|
663
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
664
|
+
true
|
665
|
+
else
|
666
|
+
false
|
667
|
+
end
|
668
|
+
when :Object
|
669
|
+
# generic object (usually a Hash), return directly
|
670
|
+
value
|
671
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
672
|
+
inner_type = Regexp.last_match[:inner_type]
|
673
|
+
value.map { |v| _deserialize(inner_type, v) }
|
674
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
675
|
+
k_type = Regexp.last_match[:k_type]
|
676
|
+
v_type = Regexp.last_match[:v_type]
|
677
|
+
{}.tap do |hash|
|
678
|
+
value.each do |k, v|
|
679
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
680
|
+
end
|
681
|
+
end
|
682
|
+
else # model
|
683
|
+
# models (e.g. Pet) or oneOf
|
684
|
+
klass = Lob.const_get(type)
|
685
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
686
|
+
end
|
687
|
+
end
|
688
|
+
|
689
|
+
# Returns the string representation of the object
|
690
|
+
# @return [String] String presentation of the object
|
691
|
+
def to_s
|
692
|
+
to_hash.to_s
|
693
|
+
end
|
694
|
+
|
695
|
+
# to_body is an alias to to_hash (backward compatibility)
|
696
|
+
# @return [Hash] Returns the object in the form of hash
|
697
|
+
def to_body
|
698
|
+
to_hash
|
699
|
+
end
|
700
|
+
|
701
|
+
# Returns the object in the form of hash
|
702
|
+
# @return [Hash] Returns the object in the form of hash
|
703
|
+
def to_hash
|
704
|
+
hash = {}
|
705
|
+
self.class.attribute_map.each_pair do |attr, param|
|
706
|
+
value = self.send(attr) # // guardrails-disable-line
|
707
|
+
if value.nil?
|
708
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
709
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
710
|
+
end
|
711
|
+
|
712
|
+
hash[param] = _to_hash(value)
|
713
|
+
end
|
714
|
+
hash
|
715
|
+
end
|
716
|
+
|
717
|
+
# Outputs non-array value in the form of hash
|
718
|
+
# For object, use to_hash. Otherwise, just return the value
|
719
|
+
# @param [Object] value Any valid value
|
720
|
+
# @return [Hash] Returns the value in the form of hash
|
721
|
+
def _to_hash(value)
|
722
|
+
if value.is_a?(Array)
|
723
|
+
value.compact.map { |v| _to_hash(v) }
|
724
|
+
elsif value.is_a?(Hash)
|
725
|
+
{}.tap do |hash|
|
726
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
727
|
+
end
|
728
|
+
elsif value.respond_to? :to_hash
|
729
|
+
value.to_hash
|
730
|
+
else
|
731
|
+
value
|
732
|
+
end
|
733
|
+
end
|
734
|
+
|
735
|
+
end
|
736
|
+
|
737
|
+
end
|