diff --git a/demo/rebilly.json b/demo/rebilly.json new file mode 100644 index 00000000..5566b47f --- /dev/null +++ b/demo/rebilly.json @@ -0,0 +1,5435 @@ +{ + "swagger": "2.0", + "info": { + "version": "2.1", + "title": "Rebilly REST API", + "contact": { + "name": "Rebilly API Support", + "url": "https://www.rebilly.com/contact/", + "email": "integrations@rebilly.com" + }, + "license": { + "name": "Rebilly", + "url": "https://www.rebilly.com/api/license/" + }, + "termsOfService": "https://www.rebilly.com/terms/" + }, + "host": "api.rebilly.com", + "basePath": "/v2.1", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [ + { + "name": "Public" + }, + { + "name": "Layout", + "description": "Layouts are used to hold collections of plans. A layout can be used to\npower a pricing page. You can make multiple layouts, and use rules to\ntarget them to different audiences.\n" + }, + { + "name": "Website", + "description": "Website is your website accepting payments\n" + }, + { + "name": "Contact", + "description": "Contacts belong to Customers. A Customer can have many contacts.\nSome contacts are associated to Invoices, Payment Cards, Subscriptions\nand Transactions.\n" + }, + { + "name": "Organization", + "description": "Organizations include the name and address of the entities related to your\naccount. An account may be multi-national, and support multiple\norganizations. Note: Organizations are share between \"Live\" and \"Sandbox\"\n" + }, + { + "name": "Blacklist", + "description": "Your blacklists contains values of customerIds, email addresses,\nipAddresses, bank identification numbers, countries or payment cards that\nyou do NOT want to do business with. They are a good tool for managing\nrisk. A blacklist entry that expires after a period of time we call a\ngreylist.\n" + }, + { + "name": "Customer", + "description": "Customers are your customers, sometimes known as accounts, clients,\nmembers, patrons, or players in other systems.\n" + }, + { + "name": "Payment", + "description": "Collect money from your customers with payments.\n" + }, + { + "name": "Product", + "description": "Your product includes digital goods, services, and physical goods. \n" + }, + { + "name": "Taxes", + "description": "You can map a product to a tax category. The tax category is used by \ntax providers to calculate taxes for invoices.\n" + } + ], + "securityDefinitions": { + "ApiKey": { + "description": "When you sign up for an account, you are given your first API key.\nTo do so please follow this link: https://www.rebilly.com/site/signup/\nAlso you can generate additional API keys, and delete API keys (as you may\nneed to rotate your keys in the future).\n", + "name": "REB-APIKEY", + "type": "apiKey", + "in": "header" + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "responses": { + "AccessForbidden": { + "description": "Access forbidden, invalid API-KEY was used", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "NotFound": { + "description": "Resource was not found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "InvalidDataError": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/Error" + } + } + }, + "parameters": { + "resourceId": { + "name": "id", + "in": "path", + "description": "The resource identifier string", + "type": "string", + "required": true + }, + "collectionLimit": { + "name": "limit", + "in": "query", + "description": "The collection items limit", + "type": "integer", + "minimum": 0, + "maximum": 1000 + }, + "collectionOffset": { + "name": "offset", + "in": "query", + "description": "The collection items offset", + "type": "integer", + "minimum": 0 + } + }, + "paths": { + "/authentication-options": { + "get": { + "tags": [ + "AuthenticationOptions", + "Credential", + "ResetPasswordToken", + "AuthenticationToken", + "Public" + ], + "summary": "Read current options", + "description": "Read current authentication options\n", + "responses": { + "200": { + "description": "Current authentication options was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticationOptions" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "put": { + "tags": [ + "AuthenticationOptions", + "Credential", + "ResetPasswordToken", + "AuthenticationToken", + "Public" + ], + "summary": "Change options", + "description": "Change options\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "AuthenticationOptions resource", + "required": true, + "schema": { + "$ref": "#/definitions/AuthenticationOptions" + } + } + ], + "responses": { + "200": { + "description": "Authentication Options were updated", + "schema": { + "$ref": "#/definitions/AuthenticationOptions" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/authentication-tokens/{token}": { + "parameters": [ + { + "name": "token", + "in": "path", + "description": "The token identifier string", + "type": "string", + "required": true + } + ], + "get": { + "tags": [ + "AuthenticationToken", + "Credential", + "Public" + ], + "summary": "Verify", + "description": "Verify an authentication token\n", + "responses": { + "200": { + "description": "Authentication Token was verified", + "schema": { + "$ref": "#/definitions/AuthenticationToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "delete": { + "tags": [ + "AuthenticationToken", + "Credential", + "Public" + ], + "summary": "Logout a user", + "description": "Logout a user\n", + "responses": { + "204": { + "description": "User was logged out" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/authentication-tokens": { + "get": { + "tags": [ + "AuthenticationToken", + "Credential", + "Public" + ], + "summary": "Retrieve a list of auth tokens", + "description": "Retrieve a list of auth tokens\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of auth tokens was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticationToken" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "AuthenticationToken", + "Credential", + "Public" + ], + "summary": "Login", + "description": "Login a user\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "AuthenticationToken resource", + "required": true, + "schema": { + "$ref": "#/definitions/AuthenticationToken" + } + } + ], + "responses": { + "201": { + "description": "Login successful", + "schema": { + "$ref": "#/definitions/AuthenticationToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/blacklists/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Blacklist", + "Public" + ], + "summary": "Retrieve a blacklist", + "description": "Retrieve a blacklist with specified identifier string\n", + "responses": { + "200": { + "description": "Blacklist was retrieved successfully", + "schema": { + "$ref": "#/definitions/Blacklist" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Blacklist", + "Public" + ], + "summary": "Create a blacklist with predefined ID", + "description": "Create a blacklist with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Blacklist resource", + "required": true, + "schema": { + "$ref": "#/definitions/Blacklist" + } + } + ], + "responses": { + "201": { + "description": "Blacklist was created", + "schema": { + "$ref": "#/definitions/Blacklist" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "409": { + "description": "Blacklist exist and cannot be updated", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + }, + "delete": { + "tags": [ + "Blacklist", + "Public" + ], + "summary": "Delete a blacklist", + "description": "Delete a blacklist with predefined identifier string\n", + "responses": { + "204": { + "description": "Blacklist was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/blacklists": { + "get": { + "tags": [ + "Blacklist", + "Public" + ], + "summary": "Retrieve a list of blacklists", + "description": "Retrieve a list of blacklists\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Blacklists was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Blacklist" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Blacklist", + "Public" + ], + "summary": "Create a blacklist", + "description": "Create a blacklist\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Blacklist resource", + "required": true, + "schema": { + "$ref": "#/definitions/Blacklist" + } + } + ], + "responses": { + "201": { + "description": "Blacklist was created", + "schema": { + "$ref": "#/definitions/Blacklist" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/contacts/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Contact", + "Public" + ], + "summary": "Retrieve a contact", + "description": "Retrieve a contact with specified identifier string\n", + "responses": { + "200": { + "description": "Contact was retrieved successfully", + "schema": { + "$ref": "#/definitions/Contact" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Contact", + "Public" + ], + "summary": "Create or update a contact with predefined ID", + "description": "Create or update a contact with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Contact resource", + "required": true, + "schema": { + "$ref": "#/definitions/Contact" + } + } + ], + "responses": { + "201": { + "description": "Contact was created", + "schema": { + "$ref": "#/definitions/Contact" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "409": { + "description": "Contact exists and cannot be updated" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/contacts": { + "get": { + "tags": [ + "Contact", + "Public" + ], + "summary": "Retrieve a list of contacts", + "description": "Retrieve a list of contacts\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Contacts was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Contact" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Contact", + "Public" + ], + "summary": "Create a contact", + "description": "Create a contact\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Contact resource", + "required": true, + "schema": { + "$ref": "#/definitions/Contact" + } + } + ], + "responses": { + "201": { + "description": "Contact was created", + "schema": { + "$ref": "#/definitions/Contact" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/credentials/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Credential", + "Public" + ], + "summary": "Retrieve a credential", + "description": "Retrieve a credential with specified identifier string\n", + "responses": { + "200": { + "description": "Credential was retrieved successfully", + "schema": { + "$ref": "#/definitions/Credential" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Credential", + "Public" + ], + "summary": "Create or update a credential with predefined ID", + "description": "Create or update a credential with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Credential resource", + "required": true, + "schema": { + "$ref": "#/definitions/Credential" + } + } + ], + "responses": { + "200": { + "description": "Credential was updated", + "schema": { + "$ref": "#/definitions/Credential" + } + }, + "201": { + "description": "Credential was created", + "schema": { + "$ref": "#/definitions/Credential" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + }, + "delete": { + "tags": [ + "Credential", + "Public" + ], + "summary": "Delete a credential", + "description": "Delete a credential with predefined identifier string\n", + "responses": { + "204": { + "description": "Credential was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/credentials": { + "get": { + "tags": [ + "Credential", + "Public" + ], + "summary": "Retrieve a list of credentials", + "description": "Retrieve a list of credentials\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Credentials was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Credential" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Credential", + "Public" + ], + "summary": "Create a credential", + "description": "Create a credential\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Credential resource", + "required": true, + "schema": { + "$ref": "#/definitions/Credential" + } + } + ], + "responses": { + "201": { + "description": "Credential was created", + "schema": { + "$ref": "#/definitions/Credential" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/custom-fields/{resource}/{name}": { + "parameters": [ + { + "name": "resource", + "in": "path", + "description": "The resource type string", + "type": "string", + "required": true, + "enum": [ + "customers", + "payment-cards", + "subscriptions", + "payments", + "websites", + "contacts" + ] + }, + { + "name": "name", + "in": "path", + "description": "The custom field's identifier string", + "type": "string", + "required": true + } + ], + "get": { + "tags": [ + "Custom Fields", + "Public" + ], + "summary": "Retrieve a Custom Field", + "description": "Retrieve a schema of the given Custom Field for the given resource type\n", + "responses": { + "200": { + "description": "A schema of the Custom Field was retrieved successfully", + "schema": { + "$ref": "#/definitions/CustomField" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Custom Fields", + "Public" + ], + "summary": "Alter a Custom Field", + "description": "Alter a schema of the given Custom Field for the given resource type.\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Custom Fields schema of the given resource type", + "required": true, + "schema": { + "$ref": "#/definitions/CustomField" + } + } + ], + "responses": { + "200": { + "description": "The Custom Field was updated", + "schema": { + "$ref": "#/definitions/CustomField" + } + }, + "201": { + "description": "The Custom Fields was created", + "schema": { + "$ref": "#/definitions/CustomField" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "409": { + "description": "The schema is in use: remove all the associated data in order to remove or alter the schema", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + }, + "delete": { + "tags": [ + "Custom Fields", + "Public" + ], + "summary": "Delete a custom field", + "description": "Delete a custom field by its name\n", + "responses": { + "204": { + "description": "Custom field has been deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "409": { + "description": "The field is in use: remove all the associated data first", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/custom-fields/{resource}": { + "parameters": [ + { + "name": "resource", + "in": "path", + "description": "The resource type string", + "type": "string", + "required": true, + "enum": [ + "customers", + "payment-cards", + "subscriptions", + "payments", + "websites", + "contacts" + ] + } + ], + "get": { + "tags": [ + "Custom Fields", + "Public" + ], + "summary": "Retrieve Custom Fields", + "description": "Retrieve a schema of Custom Fields for the given resource type\n", + "responses": { + "200": { + "description": "A schema of Custom Fields was retrieved successfully", + "schema": { + "description": "The list of custom fields", + "type": "array", + "items": { + "$ref": "#/definitions/CustomField" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + } + }, + "/customers/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Customer", + "Public" + ], + "summary": "Retrieve a customer", + "description": "Retrieve a customer with specified identifier string\n", + "responses": { + "200": { + "description": "Customer was retrieved successfully", + "schema": { + "$ref": "#/definitions/Customer" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Customer", + "Public" + ], + "summary": "Create a customer with predefined ID", + "description": "Create a customer with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Customer resource", + "required": true, + "schema": { + "$ref": "#/definitions/Customer" + } + } + ], + "responses": { + "200": { + "description": "Customer was updated", + "schema": { + "$ref": "#/definitions/Customer" + } + }, + "201": { + "description": "Customer was created", + "schema": { + "$ref": "#/definitions/Customer" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/customers": { + "get": { + "tags": [ + "Customer", + "Public" + ], + "summary": "Retrieve a list of customers", + "description": "Retrieve a list of customers\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Customers was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Customer" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Customer", + "Public" + ], + "summary": "Create a customer", + "description": "Create a customer\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Customer resource", + "required": true, + "schema": { + "$ref": "#/definitions/Customer" + } + } + ], + "responses": { + "201": { + "description": "Customer was created", + "schema": { + "$ref": "#/definitions/Customer" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/gateway-accounts/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "GatewayAccount", + "Public" + ], + "summary": "Retrieve a Gateway Account", + "description": "Retrieve a Gateway Account with specified identifier string\n", + "responses": { + "200": { + "description": "Gateway Account was retrieved successfully", + "schema": { + "$ref": "#/definitions/GatewayAccount" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "GatewayAccount", + "Public" + ], + "summary": "Create or update a Gateway Account with predefined ID", + "description": "Create or update a GatewayAccount with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Gateway Account resource", + "required": true, + "schema": { + "$ref": "#/definitions/GatewayAccount" + } + } + ], + "responses": { + "200": { + "description": "Gateway Account was updated", + "schema": { + "$ref": "#/definitions/GatewayAccount" + } + }, + "201": { + "description": "Gateway Account was created", + "schema": { + "$ref": "#/definitions/GatewayAccount" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + }, + "delete": { + "tags": [ + "GatewayAccount", + "Public" + ], + "summary": "Delete a Gateway Account", + "description": "Delete a Gateway Account with predefined identifier string\n", + "responses": { + "204": { + "description": "Gateway Account was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/gateway-accounts": { + "get": { + "tags": [ + "GatewayAccount", + "Public" + ], + "summary": "Retrieve a list of gateway accounts", + "description": "Retrieve a list of gateway accounts\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of GatewayAccount was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GatewayAccount" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "GatewayAccount", + "Public" + ], + "summary": "Create a Gateway Account", + "description": "Create a GatewayAccount\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "GatewayAccount resource", + "required": true, + "schema": { + "$ref": "#/definitions/GatewayAccount" + } + } + ], + "responses": { + "201": { + "description": "Gateway Account was created", + "schema": { + "$ref": "#/definitions/GatewayAccount" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/invoices/{id}/abandon": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Abandon an invoice", + "description": "Abandon an invoice with specified identifier string\n", + "responses": { + "201": { + "description": "Invoice was abandoned successfully", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/invoices/{id}/issue": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Issue an invoice", + "description": "Issue an invoice with specified identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "InvoiceItem resource", + "required": true, + "schema": { + "$ref": "#/definitions/InvoiceIssue" + } + } + ], + "responses": { + "201": { + "description": "Invoice was abandoned successfully", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/invoices/{id}/items": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Invoice", + "InvoiceItem", + "Public" + ], + "summary": "Retrieve invoice items", + "description": "Retrieve an invoice items with specified invoice identifier string\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "Invoice items were retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/InvoiceItem" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "post": { + "tags": [ + "Invoice", + "InvoiceItem", + "Public" + ], + "summary": "Create an invoice item", + "description": "Create an invoice item\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "InvoiceItem resource", + "required": true, + "schema": { + "$ref": "#/definitions/InvoiceItem" + } + } + ], + "responses": { + "201": { + "description": "InvoiceItem was created", + "schema": { + "$ref": "#/definitions/InvoiceItem" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/invoices/{id}/void": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Void an invoice", + "description": "Void an invoice with specified identifier string\n", + "responses": { + "201": { + "description": "Invoice was voided successfully", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/invoices/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Retrieve an invoice", + "description": "Retrieve an invoice with specified identifier string\n", + "responses": { + "200": { + "description": "Invoice was retrieved successfully", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Create or update an invoice with predefined ID", + "description": "Create or update an invoice with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Invoice resource", + "required": true, + "schema": { + "$ref": "#/definitions/Invoice" + } + } + ], + "responses": { + "200": { + "description": "Invoice was updated", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "201": { + "description": "Invoice was created", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/invoices": { + "get": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Retrieve a list of invoices", + "description": "Retrieve a list of invoices\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of invoices was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Invoice" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Invoice", + "Public" + ], + "summary": "Create an invoice", + "description": "Create an invoice\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Invoice resource", + "required": true, + "schema": { + "$ref": "#/definitions/Invoice" + } + } + ], + "responses": { + "201": { + "description": "Invoice was created", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/layouts/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Layout", + "Public" + ], + "summary": "Retrieve a layout", + "description": "Retrieve a layout with specified identifier string\n", + "responses": { + "200": { + "description": "Layout was retrieved successfully", + "schema": { + "$ref": "#/definitions/Layout" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Layout", + "Public" + ], + "summary": "Create or update a layout with predefined ID", + "description": "Create or update a layout with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Layout resource", + "required": true, + "schema": { + "$ref": "#/definitions/Layout" + } + } + ], + "responses": { + "200": { + "description": "Layout was updated", + "schema": { + "$ref": "#/definitions/Layout" + } + }, + "201": { + "description": "Layout was created", + "schema": { + "$ref": "#/definitions/Layout" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/layouts": { + "get": { + "tags": [ + "Layout", + "Public" + ], + "summary": "Retrieve a layout list", + "description": "Retrieve a layout list\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "Layout list was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Layout" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Layout", + "Public" + ], + "summary": "Create a layout", + "description": "Create a layout\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Layout resource", + "required": true, + "schema": { + "$ref": "#/definitions/Layout" + } + } + ], + "responses": { + "201": { + "description": "Layout was created", + "schema": { + "$ref": "#/definitions/Layout" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/lead-sources/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "LeadSource", + "Public" + ], + "summary": "Retrieve a LeadSource", + "description": "Retrieve a LeadSource with specified identifier string\n", + "responses": { + "200": { + "description": "LeadSource was retrieved successfully", + "schema": { + "$ref": "#/definitions/LeadSource" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "LeadSource", + "Public" + ], + "summary": "Create a LeadSource with predefined ID", + "description": "Create a LeadSource with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "LeadSource resource", + "required": true, + "schema": { + "$ref": "#/definitions/LeadSource" + } + } + ], + "responses": { + "200": { + "description": "LeadSource was updated", + "schema": { + "$ref": "#/definitions/LeadSource" + } + }, + "201": { + "description": "LeadSource was created", + "schema": { + "$ref": "#/definitions/LeadSource" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/lead-sources": { + "get": { + "tags": [ + "LeadSource", + "Public" + ], + "summary": "Retrieve a list of LeadSources", + "description": "Retrieve a list of LeadSources\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of LeadSources was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/LeadSource" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "LeadSource", + "Public" + ], + "summary": "Create a LeadSource", + "description": "Create a LeadSource\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "LeadSource resource", + "required": true, + "schema": { + "$ref": "#/definitions/LeadSource" + } + } + ], + "responses": { + "201": { + "description": "LeadSource was created", + "schema": { + "$ref": "#/definitions/LeadSource" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/notes/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Note", + "Public" + ], + "summary": "Retrieve a note", + "description": "Retrieve a note with specified identifier string\n", + "responses": { + "200": { + "description": "Note was retrieved successfully", + "schema": { + "$ref": "#/definitions/Note" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Note", + "Public" + ], + "summary": "Create or update a note with predefined ID", + "description": "Create or update a note with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Note resource", + "required": true, + "schema": { + "$ref": "#/definitions/Note" + } + } + ], + "responses": { + "200": { + "description": "Note was updated", + "schema": { + "$ref": "#/definitions/Note" + } + }, + "201": { + "description": "Note was created", + "schema": { + "$ref": "#/definitions/Note" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/notes": { + "get": { + "tags": [ + "Note", + "Public" + ], + "summary": "Retrieve a list of notes", + "description": "Retrieve a list of notes\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Notes was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Note" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Note", + "Public" + ], + "summary": "Create a note", + "description": "Create a note\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Note resource", + "required": true, + "schema": { + "$ref": "#/definitions/Note" + } + } + ], + "responses": { + "201": { + "description": "Note was created", + "schema": { + "$ref": "#/definitions/Note" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/organizations/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Organization", + "Public" + ], + "summary": "Retrieve a organization", + "description": "Retrieve a organization with specified identifier string\n", + "responses": { + "200": { + "description": "Organization was retrieved successfully", + "schema": { + "$ref": "#/definitions/Organization" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Organization", + "Public" + ], + "summary": "Create or update a organization with predefined ID", + "description": "Create or update a organization with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Organization resource", + "required": true, + "schema": { + "$ref": "#/definitions/Organization" + } + } + ], + "responses": { + "200": { + "description": "Organization was updated", + "schema": { + "$ref": "#/definitions/Organization" + } + }, + "201": { + "description": "Organization was created", + "schema": { + "$ref": "#/definitions/Organization" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + }, + "delete": { + "tags": [ + "Organization", + "Public" + ], + "summary": "Delete a organization", + "description": "Delete a organization with predefined identifier string\n", + "responses": { + "204": { + "description": "Organization was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "409": { + "description": "Organization has related resources and cannot be deleted", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/organizations": { + "get": { + "tags": [ + "Organization", + "Public" + ], + "summary": "Retrieve a list of organizations", + "description": "Retrieve a list of organizations\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of organizations was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Organization" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Organization", + "Public" + ], + "summary": "Create a organization", + "description": "Create a organization\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Organization resource", + "required": true, + "schema": { + "$ref": "#/definitions/Organization" + } + } + ], + "responses": { + "201": { + "description": "Organization was created", + "schema": { + "$ref": "#/definitions/Organization" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/password-tokens/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "ResetPasswordToken", + "Credential", + "Public" + ], + "summary": "Retrieve a Reset Password Token", + "description": "Retrieve a Reset Password Token with specified identifier string\n", + "responses": { + "200": { + "description": "ResetPasswordToken was retrieved successfully", + "schema": { + "$ref": "#/definitions/ResetPasswordToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "delete": { + "tags": [ + "ResetPasswordToken", + "Credential", + "Public" + ], + "summary": "Delete a Reset Password Token", + "description": "Delete a Reset Password Token with predefined identifier string\n", + "responses": { + "204": { + "description": "ResetPasswordToken was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "409": { + "description": "ResetPasswordToken has related resources and cannot be deleted" + } + } + } + }, + "/password-tokens": { + "get": { + "tags": [ + "ResetPasswordToken", + "Credential", + "Public" + ], + "summary": "Retrieve a list of tokens", + "description": "Retrieve a list of tokens\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Reset Password Tokens was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ResetPasswordToken" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "ResetPasswordToken", + "Credential", + "Public" + ], + "summary": "Create a Reset Password Token", + "description": "Create a Reset Password Token\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "ResetPasswordToken resource", + "required": true, + "schema": { + "$ref": "#/definitions/ResetPasswordToken" + } + } + ], + "responses": { + "201": { + "description": "Reset Password Token was created", + "schema": { + "$ref": "#/definitions/ResetPasswordToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/payment-cards/{id}/authorization": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "PaymentCard", + "Public" + ], + "summary": "Authorize a Payment Card", + "description": "Authorize a Payment Card\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "PaymentCard resource", + "required": true, + "schema": { + "type": "object", + "required": [ + "websiteId", + "currency" + ], + "properties": { + "websiteId": { + "description": "The Website ID", + "type": "string" + }, + "currency": { + "description": "Currency (three letter code)", + "type": "string" + }, + "gatewayAccountId": { + "description": "The Gateway account ID", + "type": "string" + }, + "amount": { + "description": "Amount", + "type": "number", + "format": "double" + } + } + } + } + ], + "responses": { + "201": { + "description": "Authorization successful", + "schema": { + "$ref": "#/definitions/PaymentCard" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/payment-cards/{id}/deactivation": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "PaymentCard", + "Public" + ], + "summary": "Deactivate a Payment Card", + "description": "Deactivate a Payment Card\n", + "responses": { + "201": { + "description": "Authorization successful", + "schema": { + "$ref": "#/definitions/PaymentCard" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/payment-cards/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "PaymentCard", + "Public" + ], + "summary": "Retrieve a Payment Card", + "description": "Retrieve a Payment Card with specified identifier string\n", + "responses": { + "200": { + "description": "PaymentCard was retrieved successfully", + "schema": { + "$ref": "#/definitions/PaymentCard" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/payment-cards": { + "get": { + "tags": [ + "PaymentCard", + "Public" + ], + "summary": "Retrieve a list of Payment Cards", + "description": "Retrieve a list of Payments Cards\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Payment Card was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentCard" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "PaymentCard", + "Public" + ], + "summary": "Create a Payment Card", + "description": "Create a Payment Card\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "PaymentCard resource", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCard" + } + } + ], + "responses": { + "201": { + "description": "Payment Card was created", + "schema": { + "$ref": "#/definitions/PaymentCard" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/payments/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Payment", + "Public" + ], + "summary": "Retrieve a payment", + "description": "Retrieve a payment with specified identifier string\n", + "responses": { + "200": { + "description": "Payment was retrieved successfully", + "schema": { + "$ref": "#/definitions/PaymentResponse" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Payment", + "Public" + ], + "summary": "Create a payment with predefined ID", + "description": "Make a payment with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Payment resource", + "required": true, + "schema": { + "$ref": "#/definitions/Payment" + } + } + ], + "responses": { + "201": { + "description": "Payment was processed", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentResponse" + } + } + }, + "202": { + "description": "Payment was accepted", + "schema": { + "$ref": "#/definitions/PaymentResponse" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/payments": { + "get": { + "tags": [ + "Payment", + "Public" + ], + "summary": "Retrieve a payment list", + "description": "Retrieve a payment list\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "Payment list was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentResponse" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "post": { + "tags": [ + "Payment", + "Public" + ], + "summary": "Create a payment", + "description": "Create a payment\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Payment resource", + "required": true, + "schema": { + "$ref": "#/definitions/Payment" + } + } + ], + "responses": { + "201": { + "description": "Payment was processed", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentResponse" + } + } + }, + "202": { + "description": "Payment was accepted", + "schema": { + "$ref": "#/definitions/PaymentResponse" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/plans/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Plan", + "Public" + ], + "summary": "Retrieve a plan", + "description": "Retrieve a plan with specified identifier string\n", + "responses": { + "200": { + "description": "Plan was retrieved successfully", + "schema": { + "$ref": "#/definitions/Plan" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Plan", + "Public" + ], + "summary": "Create or update a Plan with predefined ID", + "description": "Create or update a Plan with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Plan resource", + "required": true, + "schema": { + "$ref": "#/definitions/Plan" + } + } + ], + "responses": { + "200": { + "description": "Plan was updated", + "schema": { + "$ref": "#/definitions/Plan" + } + }, + "201": { + "description": "Plan was created", + "schema": { + "$ref": "#/definitions/Plan" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + }, + "delete": { + "tags": [ + "Plan", + "Public" + ], + "summary": "Delete a Plan", + "description": "Delete a Plan with predefined identifier string\n", + "responses": { + "204": { + "description": "Plan was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/plans": { + "get": { + "tags": [ + "Plan", + "Public" + ], + "summary": "Retrieve a list of plans", + "description": "Retrieve a list of plans\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Plans was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Plan" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Plan", + "Public" + ], + "summary": "Create a plan", + "description": "Create a plan\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Plan resource", + "required": true, + "schema": { + "$ref": "#/definitions/Plan" + } + } + ], + "responses": { + "201": { + "description": "Plan was created", + "schema": { + "$ref": "#/definitions/Plan" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/products/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Product", + "Public" + ], + "summary": "Retrieve a product", + "description": "Retrieve a product with specified identifier string\n", + "responses": { + "200": { + "description": "Product was retrieved successfully", + "schema": { + "$ref": "#/definitions/Product" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Product", + "Public" + ], + "summary": "Create a product with predefined ID", + "description": "Create a product with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Product resource", + "required": true, + "schema": { + "$ref": "#/definitions/Product" + } + } + ], + "responses": { + "200": { + "description": "Product was updated", + "schema": { + "$ref": "#/definitions/Product" + } + }, + "201": { + "description": "Product was created", + "schema": { + "$ref": "#/definitions/Product" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/products": { + "get": { + "tags": [ + "Product", + "Public" + ], + "summary": "Retrieve a list of products", + "description": "Retrieve a list of products\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of products was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Product" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Product", + "Public" + ], + "summary": "Create a Product", + "description": "Create a Product\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Product resource", + "required": true, + "schema": { + "$ref": "#/definitions/Product" + } + } + ], + "responses": { + "201": { + "description": "Product was created", + "schema": { + "$ref": "#/definitions/Product" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "$ref": "#/responses/InvalidDataError" + } + } + } + }, + "/queue-payments/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Payment", + "Public" + ], + "summary": "Retrieve a scheduled payment", + "description": "Retrieve a payment with specified identifier string\n", + "responses": { + "200": { + "description": "Successful retrieve the payment that still waiting to be processed", + "schema": { + "$ref": "#/definitions/PaymentResponse" + } + }, + "303": { + "description": "Payment was successfully processed and moved out from queue", + "schema": { + "$ref": "#/definitions/PaymentResponse" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/subscriptions/{id}/cancel": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "Subscription", + "Public" + ], + "summary": "Cancel a subscription", + "description": "Cancel a subscription\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Only policy", + "required": true, + "schema": { + "$ref": "#/definitions/SubscriptionCancel" + } + } + ], + "responses": { + "201": { + "description": "Subscription was switched", + "schema": { + "$ref": "#/definitions/Subscription" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/subscriptions/{id}/switch": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "Subscription", + "Public" + ], + "summary": "Switch a subscription", + "description": "Switch a subscription\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "SubscriptionSwitch resource", + "required": true, + "schema": { + "$ref": "#/definitions/SubscriptionSwitch" + } + } + ], + "responses": { + "201": { + "description": "Subscription was switched", + "schema": { + "$ref": "#/definitions/Subscription" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/subscriptions/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Subscription", + "Public" + ], + "summary": "Retrieve a subscription", + "description": "Retrieve a subscription with specified identifier string\n", + "responses": { + "200": { + "description": "Subscription was retrieved successfully", + "schema": { + "$ref": "#/definitions/Subscription" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Subscription", + "Public" + ], + "summary": "Create or update a subscription with predefined ID", + "description": "Create or update a subscription with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Subscription resource", + "required": true, + "schema": { + "$ref": "#/definitions/Subscription" + } + } + ], + "responses": { + "200": { + "description": "Subscription was updated", + "schema": { + "$ref": "#/definitions/Subscription" + } + }, + "201": { + "description": "Subscription was created", + "schema": { + "$ref": "#/definitions/Subscription" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/subscriptions": { + "get": { + "tags": [ + "Subscription", + "Public" + ], + "summary": "Retrieve a list of subscriptions", + "description": "Retrieve a list of subscriptions\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of subscriptions was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscription" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Subscription", + "Public" + ], + "summary": "Create a subscription", + "description": "Create a subscription\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Subscription resource", + "required": true, + "schema": { + "$ref": "#/definitions/Subscription" + } + } + ], + "responses": { + "201": { + "description": "Subscription was created", + "schema": { + "$ref": "#/definitions/Subscription" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/tax-categories": { + "get": { + "tags": [ + "Taxes", + "Public" + ], + "summary": "Retrieve a list of tax categories", + "description": "Retrieve a list of tax categories\n", + "responses": { + "200": { + "description": "A list of tax categories was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/TaxCategory" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + } + }, + "/tokens/{token}/expiration": { + "parameters": [ + { + "name": "token", + "in": "path", + "description": "The token identifier string", + "type": "string", + "required": true + } + ], + "post": { + "tags": [ + "PaymentCardToken", + "Public" + ], + "summary": "Expire a token", + "description": "Expire a token\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "PaymentCardToken resource", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCardToken" + } + } + ], + "responses": { + "201": { + "description": "Token expiration successful", + "schema": { + "$ref": "#/definitions/PaymentCardToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/tokens/{token}": { + "parameters": [ + { + "name": "token", + "in": "path", + "description": "The token identifier string", + "type": "string", + "required": true + } + ], + "get": { + "tags": [ + "PaymentCardToken", + "Public" + ], + "summary": "Retrieve a token", + "description": "Retrieve a token with specified identifier string\n", + "responses": { + "200": { + "description": "Token was retrieved successfully", + "schema": { + "$ref": "#/definitions/PaymentCardToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/tokens": { + "get": { + "tags": [ + "PaymentCardToken", + "Public" + ], + "summary": "Retrieve a list of tokens", + "description": "Retrieve a list of tokens\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of tokens was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentCardToken" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "PaymentCardToken", + "Public" + ], + "summary": "Create a token", + "description": "Create a token\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "PaymentCardToken resource", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCardToken" + } + } + ], + "responses": { + "201": { + "description": "Token was created", + "schema": { + "$ref": "#/definitions/PaymentCardToken" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + }, + "/transactions/{id}/refund": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "post": { + "tags": [ + "Transaction", + "Public" + ], + "summary": "Refund a Transaction", + "description": "Refund a Transaction with specified identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Transaction resource", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionRefund" + } + } + ], + "responses": { + "201": { + "description": "Transaction was refunded successfully", + "schema": { + "$ref": "#/definitions/Transaction" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/transactions/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Transaction", + "Public" + ], + "summary": "Retrieve a Transaction", + "description": "Retrieve a Transaction with specified identifier string\n", + "responses": { + "200": { + "description": "Transaction was retrieved successfully", + "schema": { + "$ref": "#/definitions/Transaction" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + } + }, + "/transactions": { + "get": { + "tags": [ + "Transaction", + "Public" + ], + "summary": "Retrieve a list of transactions", + "description": "Retrieve a list of transactions\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of transactions was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Transaction" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + } + }, + "/websites/{id}": { + "parameters": [ + { + "$ref": "#/parameters/resourceId" + } + ], + "get": { + "tags": [ + "Website", + "Public" + ], + "summary": "Retrieve a website", + "description": "Retrieve a website with specified identifier string\n", + "responses": { + "200": { + "description": "Website was retrieved successfully", + "schema": { + "$ref": "#/definitions/Website" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + } + } + }, + "put": { + "tags": [ + "Website", + "Public" + ], + "summary": "Create or update a website with predefined ID", + "description": "Create or update a website with predefined identifier string\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Website resource", + "required": true, + "schema": { + "$ref": "#/definitions/Website" + } + } + ], + "responses": { + "200": { + "description": "Website was updated", + "schema": { + "$ref": "#/definitions/Website" + } + }, + "201": { + "description": "Website was created", + "schema": { + "$ref": "#/definitions/Website" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + }, + "delete": { + "tags": [ + "Website", + "Public" + ], + "summary": "Delete a website", + "description": "Delete a website with predefined identifier string\n", + "responses": { + "204": { + "description": "Website was deleted" + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "409": { + "description": "Website has related resources and cannot be deleted" + } + } + } + }, + "/websites": { + "get": { + "tags": [ + "Website", + "Public" + ], + "summary": "Retrieve a list of websites", + "description": "Retrieve a list of websites\n", + "parameters": [ + { + "$ref": "#/parameters/collectionLimit" + }, + { + "$ref": "#/parameters/collectionOffset" + } + ], + "responses": { + "200": { + "description": "A list of Websites was retrieved successfully", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Website" + } + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + } + } + }, + "post": { + "tags": [ + "Website", + "Public" + ], + "summary": "Create a website", + "description": "Create a website\n", + "parameters": [ + { + "name": "body", + "in": "body", + "description": "Website resource", + "required": true, + "schema": { + "$ref": "#/definitions/Website" + } + } + ], + "responses": { + "201": { + "description": "Website was created", + "schema": { + "$ref": "#/definitions/Website" + } + }, + "401": { + "$ref": "#/responses/AccessForbidden" + }, + "422": { + "description": "Invalid data was sent", + "schema": { + "$ref": "#/definitions/InvalidError" + } + } + } + } + } + }, + "definitions": { + "AuthenticationOptions": { + "type": "object", + "properties": { + "passwordPattern": { + "description": "Allowed password pattern", + "type": "string" + }, + "credentialTtl": { + "description": "The default lifetime of the credential in seconds", + "type": "integer" + }, + "authTokenTtl": { + "description": "The default lifetime of the auth-token in seconds", + "type": "integer" + }, + "resetTokenTtl": { + "description": "The default lifetime of the reset-token in seconds", + "type": "integer" + } + } + }, + "AuthenticationToken": { + "type": "object", + "required": [ + "username", + "password" + ], + "properties": { + "token": { + "description": "The token identifier string", + "type": "string", + "readOnly": true + }, + "username": { + "description": "The token's username", + "type": "string" + }, + "password": { + "description": "The token's password (write-only)", + "type": "string", + "format": "password" + }, + "credentialId": { + "description": "The credential's ID", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "The token's customer ID", + "type": "string", + "readOnly": true + }, + "expiredTime": { + "description": "Token's expired time", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to token", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Blacklist": { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "id": { + "description": "The blacklist identifier string", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The blacklist type", + "type": "string", + "enum": [ + "paymentCardId", + "customerId", + "email", + "ipAddress", + "country" + ] + }, + "value": { + "description": "The blacklist value", + "type": "string" + }, + "ttl": { + "description": "The blacklist time to live", + "type": "integer", + "minimum": 30 + }, + "expireTime": { + "description": "The blacklist expire time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "createdTime": { + "description": "The blacklist created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "The blacklist updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to blacklist", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Contact": { + "type": "object", + "properties": { + "id": { + "description": "The contact identifier string", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "The contact ID", + "type": "string" + }, + "firstName": { + "description": "The contact first name", + "type": "string" + }, + "lastName": { + "description": "The contact last name", + "type": "string" + }, + "organization": { + "description": "The contact organization", + "type": "string" + }, + "address": { + "description": "The contact street address", + "type": "string", + "maxLength": 60 + }, + "address2": { + "description": "The contact street address (second line)", + "type": "string", + "maxLength": 60 + }, + "city": { + "description": "The contact city", + "type": "string", + "maxLength": 45 + }, + "region": { + "description": "The contact region (state)", + "type": "string", + "maxLength": 45 + }, + "country": { + "description": "The contact country ISO Alpha-2 code", + "type": "string", + "pattern": "^[A-Z]{2}$" + }, + "postalCode": { + "description": "The contact postal code", + "type": "string", + "maxLength": 10 + }, + "phoneNumber": { + "description": "The contact phone number", + "type": "string" + }, + "createdTime": { + "description": "The contact created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "The contact updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to contact", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + }, + "customFields": { + "$ref": "#/definitions/ResourceCustomFields" + } + } + }, + "Credential": { + "type": "object", + "required": [ + "username", + "password", + "customerId" + ], + "properties": { + "id": { + "description": "The credential identifier string", + "type": "string", + "readOnly": true + }, + "username": { + "description": "Credential's username", + "type": "string" + }, + "password": { + "description": "The credential's password", + "type": "string", + "format": "password" + }, + "customerId": { + "description": "The credential's customer ID", + "type": "string" + }, + "expiredTime": { + "description": "The credential's expired time", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to credential", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Customer": { + "type": "object", + "properties": { + "id": { + "description": "The customer identifier string", + "type": "string", + "readOnly": true + }, + "email": { + "description": "The customer email", + "type": "string", + "format": "email", + "maxLength": 100 + }, + "firstName": { + "description": "The customer first name", + "type": "string" + }, + "lastName": { + "description": "The customer last name", + "type": "string" + }, + "ipAddress": { + "description": "The customer IP", + "type": "string", + "format": "ipv4" + }, + "defaultCard": { + "description": "The customer default card ID", + "type": "string" + }, + "createdTime": { + "description": "The customer created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "The customer updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to customer", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + }, + "customFields": { + "$ref": "#/definitions/ResourceCustomFields" + } + } + }, + "CustomField": { + "description": "A separate Custom Field schema", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "The name of the custom field", + "type": "string" + }, + "type": { + "description": "Type value | Description\n------------- | -------------\narray | An array of strings up to 255 characters, maximum size is 1000 elements\nboolean | true or false\ndate | String of format \"full-date\" (YYYY-MM-DD) from RFC-3339 (full-date)\ndatetime | String of format \"date-time\" (YYYY-MM-DDTHH:MM:SSZ) from RFC-3339 (date-time)\ninteger | Cardinal value of -2^31..2^31-1\nnumber | Float value. It can take cardinal values also which are interpreted as float\nstring | Regular string up to 255 characters\nmonetary | A map of 3-letters currency code and amount, e.g. {\"currency\": \"EUR\", \"amount\": 25.30}\n", + "type": "string", + "enum": [ + "array", + "boolean", + "datetime", + "integer", + "number", + "string", + "monetary" + ] + }, + "description": { + "description": "The custom field description", + "type": "string" + }, + "additionalSchema": { + "description": "Additional parameters which can be added according to type:\nParameter Name | Types | Description\n-------------- | ------------- | -------------\nallowedValues | string, array | List of allowed values\n" + } + } + }, + "DeclineInstructions": { + "type": "object", + "description": "Dunning instructions object for payment declines", + "properties": { + "dunningId": { + "description": "The dunning identifier string", + "type": "string" + }, + "dunningIndex": { + "readOnly": true, + "description": "The position in the sequence of dunning", + "type": "integer" + } + } + }, + "Error": { + "type": "object", + "properties": { + "status": { + "type": "integer", + "minimum": 100, + "maximum": 600 + }, + "error": { + "type": "string" + } + } + }, + "GatewayAccount": { + "type": "object", + "required": [ + "gatewayName", + "merchantCategoryCode", + "websites", + "acquirerName", + "acceptedCurrencies", + "organizationId" + ], + "properties": { + "id": { + "description": "The gateway identifier string", + "type": "string", + "readOnly": true + }, + "gatewayName": { + "description": "The gateway name", + "type": "string" + }, + "gatewayConfig": { + "type": "object", + "description": "Gateway config. Fields depends on gatewayName" + }, + "merchantCategoryCode": { + "description": "The gateway's merchant category code", + "type": "integer", + "minimum": 742, + "maximum": 9950 + }, + "descriptor": { + "description": "The gateway's desciptor", + "type": "string" + }, + "city": { + "description": "The gateway's city field", + "type": "string" + }, + "organizationId": { + "description": "Organization ID", + "type": "string" + }, + "websites": { + "description": "Websites IDs", + "type": "array", + "items": { + "type": "string", + "description": "Website ID" + } + }, + "acquirerName": { + "description": "Acquirer name", + "type": "string" + }, + "monthlyLimit": { + "description": "Monthly Limit", + "type": "integer", + "format": "double", + "minimum": 0 + }, + "threeDSecure": { + "description": "True, if Gateway Account allows 3DSecure", + "type": "boolean" + }, + "threeDSecureType": { + "description": "Type of 3DSecure", + "type": "string", + "enum": [ + null, + "integrated", + "external" + ] + }, + "dynamicDescriptor": { + "description": "True, if Gateway Account allows dynamic descriptor", + "type": "boolean" + }, + "acceptedCurrencies": { + "description": "Accepted currencies (array of the currency three letter code)", + "type": "array", + "items": { + "type": "string" + } + }, + "paymentMethods": { + "description": "Accepted payments methods", + "type": "array", + "items": { + "type": "string", + "enum": [ + "Visa", + "Mastercard", + "American_Express", + "Discover", + "Maestro", + "Solo", + "Electron", + "JCB", + "Voyager", + "Diners_Club", + "Switch", + "Laser" + ] + } + }, + "downtimeStart": { + "description": "Gateway downtime start", + "type": "string", + "format": "date-time" + }, + "downtimeEnd": { + "description": "Gateway downtime end", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to gateway account", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "InvalidError": { + "allOf": [ + { + "$ref": "#/definitions/Error" + }, + { + "type": "object", + "properties": { + "details": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + ] + }, + "Invoice": { + "type": "object", + "required": [ + "customerId", + "websiteId", + "currency" + ], + "properties": { + "id": { + "description": "The invoice identifier string", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "The customer's ID", + "type": "string" + }, + "websiteId": { + "description": "The website's ID", + "type": "string" + }, + "currency": { + "description": "The currency three letter code", + "type": "string" + }, + "billingContactId": { + "description": "Invoice's billing contact ID", + "type": "string", + "format": "email" + }, + "deliveryContactId": { + "description": "Invoice's delivery contact ID", + "type": "string" + }, + "items": { + "type": "array", + "description": "Invoice items array", + "readOnly": true, + "items": { + "type": "string" + } + }, + "abandonedTime": { + "description": "Invoice abandoned time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "voidedTime": { + "description": "Invoice voided time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "closedTime": { + "description": "Invoice closed time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "dueTime": { + "description": "Invoice due time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "issuedTime": { + "description": "Invoice issued time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "createdTime": { + "description": "Invoice created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to invoice", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "InvoiceIssue": { + "type": "object", + "properties": { + "issueTime": { + "type": "string", + "format": "date-time" + } + } + }, + "InvoiceItem": { + "type": "object", + "required": [ + "type", + "unitPrice" + ], + "properties": { + "id": { + "description": "The website identifier string", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Invoice item's type", + "type": "string", + "enum": [ + "debit", + "credit" + ] + }, + "unitPrice": { + "description": "Invoice item's price", + "type": "number", + "format": "double" + }, + "quantity": { + "description": "Invoice item's quantity", + "type": "integer" + }, + "description": { + "description": "Invoice item's description", + "type": "string" + }, + "periodStartTime": { + "description": "Start time", + "type": "string", + "format": "date-time" + }, + "periodEndTime": { + "description": "End time", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to invoice item", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Layout": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "description": "The layout identifier string", + "type": "string", + "readOnly": true + }, + "name": { + "description": "The name of the layout string", + "type": "string" + }, + "items": { + "description": "The array of layout items (planId and starred)", + "type": "array", + "items": { + "$ref": "#/definitions/LayoutItem" + } + }, + "createdBy": { + "description": "The process that created this layout", + "type": "string", + "readOnly": true + }, + "updatedBy": { + "description": "The process that updated this layout", + "type": "string", + "readOnly": true + }, + "createdTime": { + "description": "Layout created time", + "type": "string", + "readOnly": true + }, + "updatedTime": { + "description": "Layout updated time", + "type": "string", + "readOnly": true + }, + "customFields": { + "description": "Any custom object that must be stored with layout", + "type": "object" + }, + "_links": { + "description": "The links related to this layout", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "LayoutItem": { + "type": "object", + "properties": { + "planId": { + "description": "The plan identifier string", + "type": "string" + }, + "starred": { + "description": "Boolean if the plan should be starred (special callout presentation)", + "type": "boolean" + }, + "order": { + "description": "Item's order in Layout", + "type": "integer", + "readOnly": true + } + } + }, + "LeadSource": { + "type": "object", + "required": [ + "customerId" + ], + "properties": { + "id": { + "description": "The lead source identifier string", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "Customer ID", + "type": "string" + }, + "medium": { + "description": "Lead Source's medium (eg search, display)", + "type": "string" + }, + "source": { + "description": "Lead Source's source (eg google, yahoo)", + "type": "string" + }, + "campaign": { + "description": "Lead Source's campaign (eg go-big-123)", + "type": "string" + }, + "term": { + "description": "Lead Source's term (eg salt shakers)", + "type": "string" + }, + "content": { + "description": "Lead Source's content (eg smiley faces)", + "type": "string" + }, + "affiliate": { + "description": "Lead Source's affiliate (eg 123, Bob Smith)", + "type": "string" + }, + "subAffiliate": { + "description": "Lead Source's sub-affiliate also called a sub-id or click id in some circles (eg 123456)", + "type": "string" + }, + "salesAgent": { + "description": "Lead Source's sales agent (eg James Bond)", + "type": "string" + }, + "clickId": { + "description": "Lead Source's click id (may come from an ad server)", + "type": "string" + }, + "path": { + "description": "Lead Source's path uri (eg www.example.com/some/landing/path)", + "type": "string" + }, + "ipAddress": { + "description": "Customer's IP Address", + "type": "string" + }, + "currency": { + "description": "Currency (three letter ISO 4217 alpha code) (eg USD, EUR)", + "type": "string" + }, + "amount": { + "description": "The amount that the lead cost", + "type": "number", + "format": "double" + }, + "createdTime": { + "description": "LeadSource created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "LeadSource updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to LeadSource", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Link": { + "type": "object", + "properties": { + "rel": { + "description": "The link type", + "type": "string", + "enum": [ + "self" + ] + }, + "href": { + "description": "The link URL", + "type": "string" + } + } + }, + "Note": { + "type": "object", + "required": [ + "content", + "relatedType", + "relatedId" + ], + "properties": { + "id": { + "description": "The note identifier string", + "type": "string", + "readOnly": true + }, + "createdBy": { + "description": "The note's creator", + "type": "string", + "readOnly": true + }, + "content": { + "description": "The note's name", + "type": "string" + }, + "archived": { + "description": "Is the note archived (excluded from List method)", + "type": "boolean" + }, + "relatedType": { + "description": "The note's related resource type (customer, paymentCard, paymentGateway, subscription, transaction)", + "type": "string" + }, + "relatedId": { + "description": "The note's related resource ID", + "type": "string" + }, + "createdTime": { + "description": "Note created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "Note updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "archivedTime": { + "description": "Note archived time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to note", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Organization": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "description": "The organization identifier string", + "type": "string", + "readOnly": true + }, + "createdTime": { + "description": "The organization created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "The organization updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "name": { + "description": "The organization name", + "type": "string", + "maxLength": 60 + }, + "address": { + "description": "The organization street address", + "type": "string", + "maxLength": 60 + }, + "address2": { + "description": "The organization street address", + "type": "string", + "maxLength": 60 + }, + "city": { + "description": "The organization city", + "type": "string", + "maxLength": 45 + }, + "region": { + "description": "The organization region (state)", + "type": "string", + "maxLength": 45 + }, + "country": { + "description": "The organization country ISO Alpha-2 code", + "type": "string", + "pattern": "^[A-Z]{2}$" + }, + "postalCode": { + "description": "The organization postal code", + "type": "string", + "maxLength": 10 + }, + "_links": { + "description": "The links related to organization", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Payment": { + "type": "object", + "required": [ + "websiteId", + "customerId", + "currency", + "amount", + "method", + "paymentInstrument" + ], + "properties": { + "websiteId": { + "description": "The website identifier string", + "type": "string" + }, + "customerId": { + "description": "The customer identifier string", + "type": "string" + }, + "currency": { + "description": "The payment currency ISO Aplha code", + "type": "string" + }, + "amount": { + "description": "The payment amount", + "type": "integer", + "format": "double" + }, + "scheduledTime": { + "description": "The time the payment is scheduled for collection", + "type": "string", + "format": "date-time" + }, + "invoiceIds": { + "description": "The array of invoice identifiers", + "type": "array", + "items": { + "type": "string" + } + }, + "method": { + "description": "The payment method", + "type": "string", + "enum": [ + "payment_card", + "paypal", + "cash" + ] + }, + "description": { + "description": "The payment description", + "type": "string", + "maxLength": 255 + }, + "paymentInstrument": { + "$ref": "#/definitions/PaymentInstrument" + }, + "customFields": { + "$ref": "#/definitions/ResourceCustomFields" + }, + "declineInstructions": { + "$ref": "#/definitions/DeclineInstructions" + } + } + }, + "PaymentCard": { + "type": "object", + "properties": { + "id": { + "description": "The card identifier string", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "The Customer's ID. Required if card is creating not from Token", + "type": "string" + }, + "pan": { + "description": "The card PAN (Primary Account Number). Required if card is creating not from Token", + "type": "string" + }, + "expYear": { + "description": "Card's expiry year. Required if card is creating not from Token", + "type": "integer" + }, + "expMonth": { + "description": "Card's expiry month. Required if card is creating not from Token", + "type": "integer" + }, + "cvv": { + "description": "Card's cvv (card verification value). Required if card is creating not from Token", + "type": "string" + }, + "billingContactId": { + "description": "The Billing Contact ID. Required if card is creating not from Token", + "type": "string" + }, + "token": { + "description": "PaymentCardToken. Use without any other fields", + "type": "string" + }, + "status": { + "description": "Payment Card status", + "type": "string", + "readOnly": true, + "enum": [ + "active", + "expired", + "inactive", + "deactivated", + "pending" + ] + }, + "createdTime": { + "description": "Card created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "Card updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to card", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + }, + "customFields": { + "$ref": "#/definitions/ResourceCustomFields" + } + } + }, + "PaymentCardToken": { + "type": "object", + "required": [ + "pan", + "expMonth", + "expYear", + "firstName", + "lastName" + ], + "properties": { + "id": { + "description": "The token identifier string", + "type": "string", + "readOnly": true + }, + "pan": { + "description": "The card PAN (Primary Account Number)", + "type": "string" + }, + "expMonth": { + "description": "Card's expiry month", + "type": "integer" + }, + "expYear": { + "description": "Card's expiry year", + "type": "integer" + }, + "firstName": { + "description": "First name on payment card", + "type": "string" + }, + "lastName": { + "description": "Last name on payment card", + "type": "string" + }, + "cvv": { + "description": "The CVV/CVC of the payment card", + "type": "string" + }, + "address": { + "description": "Customer's billing address 1", + "type": "string" + }, + "address2": { + "description": "Customer's billing address 2", + "type": "string" + }, + "city": { + "description": "Billing address city", + "type": "string" + }, + "region": { + "description": "Billing region", + "type": "string" + }, + "country": { + "description": "Billing country - Two letter code", + "type": "string" + }, + "phoneNumber": { + "description": "Phone number", + "type": "string" + }, + "postalCode": { + "description": "Billing postal code", + "type": "string" + }, + "fingerprint": { + "description": "Device fingerprint hash", + "type": "string" + }, + "_links": { + "description": "The links related to token", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "PaymentInstrument": { + "type": "object", + "description": "Payment instrument object", + "properties": { + "paymentCard": { + "description": "The payment card identifier string, required when paying by payment card", + "type": "string" + }, + "paymentGateway": { + "description": "The payment gateway identifier string", + "type": "string" + }, + "gatewayTimeout": { + "description": "The time, in seconds, the api waits for the gateway's response before returning a response to the client. If the gateway will continue to process the transaction, the client will receive a 202 response.", + "type": "integer", + "minimum": 0, + "maximum": 10 + } + } + }, + "PaymentResponse": { + "allOf": [ + { + "$ref": "#/definitions/Payment" + }, + { + "properties": { + "id": { + "description": "The payment identifier string", + "type": "string" + }, + "createdBy": { + "description": "The process that created this payment", + "type": "string" + }, + "updatedBy": { + "description": "The process that updated this payment", + "type": "string" + }, + "state": { + "description": "Payment state", + "type": "string" + }, + "createdTime": { + "description": "Payment created time", + "type": "string" + }, + "updatedTime": { + "description": "Payment updated time", + "type": "string" + }, + "_links": { + "description": "The links related to payment", + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + } + ] + }, + "Plan": { + "type": "object", + "required": [ + "name", + "currency" + ], + "properties": { + "id": { + "description": "The website identifier string", + "type": "string", + "readOnly": true + }, + "name": { + "description": "The plan name", + "type": "string" + }, + "currency": { + "description": "Currency (three letter ISO 4217 code)", + "type": "string" + }, + "isActive": { + "description": "If the plan is not active, customers cannot subscribe to the plan (default to true)", + "type": "boolean" + }, + "description": { + "description": "The plan description", + "type": "string" + }, + "recurringAmount": { + "description": "The amount that recurs according to the schedule", + "type": "number", + "format": "double" + }, + "recurringPeriodUnit": { + "description": "The unit of time", + "type": "string", + "enum": [ + "day", + "week", + "month", + "year" + ] + }, + "recurringPeriodLength": { + "description": "The length of time (used with the recurringPeriodUnit)", + "type": "integer" + }, + "trialAmount": { + "description": "The amount of a trial - 0 is a valid value (for free)", + "type": "number", + "format": "double" + }, + "trialPeriodUnit": { + "description": "The unit of time", + "type": "string", + "enum": [ + "day", + "week", + "month", + "year" + ] + }, + "trialPeriodLength": { + "description": "The length of time (used with the trialPeriodUnit)", + "type": "integer" + }, + "setupAmount": { + "description": "The amount of a trial - 0 is a valid value (for free)", + "type": "number", + "format": "double" + }, + "expireTime": { + "description": "Time when the plan is not longer valid", + "type": "string", + "format": "date-time" + }, + "contractTermUnit": { + "description": "The unit of time", + "type": "string", + "enum": [ + "day", + "week", + "month", + "year" + ] + }, + "contractTermLength": { + "description": "The length that corresponds with the contractTermUnit", + "type": "integer" + }, + "recurringPeriodLimit": { + "description": "The number of times a subscription will rebill until the contract is over", + "type": "integer" + }, + "minQuantity": { + "description": "Minimum quantity per order, defaults to 1", + "type": "integer" + }, + "maxQuantity": { + "description": "Maximum quantity per order (NULL if no maximum)", + "type": "integer" + }, + "createdTime": { + "description": "Plan created time", + "type": "string", + "format": "date-time" + }, + "updatedTime": { + "description": "Plan updated time", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to plan", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Product": { + "type": "object", + "description": "Your product includes digital goods, services, and physical goods. \nProducts appear on invoice line items. If you set a tax category identifier,\ntaxes will be calculated upon invoice generation.\n", + "example": "{\n \"id\": \"stringid\",\n \"name\": \"Widget\",\n \"description\": \"Fantastic widget\",\n \"taxCategoryId\": null,\n \"customFields\": [],\n \"createdTime\": \"2015-08-27 13:45:12\",\n \"updatedTime\": \"2015-08-27 13:45:12\",\n \"_links\": [\n {\n \"self\": \"https://api.rebilly.com/v2.1/products/stringid\"\n }\n ]\n}\n", + "properties": { + "id": { + "description": "The product identifier string", + "type": "string", + "readOnly": true, + "maxLength": 50 + }, + "name": { + "description": "The product name", + "type": "string", + "maxLength": 255 + }, + "description": { + "description": "The product description", + "type": "string", + "maxLength": 512 + }, + "taxCategoryId": { + "description": "The product's tax category identifier string", + "type": "string", + "enum": [ + "99999", + "20010", + "40030", + "51020", + "51010", + "31000", + "30070" + ] + }, + "customFields": { + "description": "Any custom object that may be stored with product (see custom fields)", + "type": "string" + }, + "createdTime": { + "description": "The product created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "The product updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to product", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "ResetPasswordToken": { + "type": "object", + "required": [ + "username", + "password" + ], + "properties": { + "token": { + "description": "The token's identifier string", + "type": "string", + "readOnly": true + }, + "username": { + "description": "The token's username", + "type": "string" + }, + "password": { + "description": "Token's password (only for POST)", + "type": "string", + "format": "password" + }, + "credential": { + "description": "Token's credential ID", + "type": "string" + }, + "expiredTime": { + "description": "Password expired time", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to token", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "ResourceCustomFields": { + "description": "\"Custom Fields list as a map `{\"custom field name\": \"custom field value\", ...}\"`.\nThe format must follow the saved format (see Custom Fields section for the formats).\n", + "type": "object" + }, + "Subscription": { + "type": "object", + "required": [ + "customerId", + "planId", + "websiteId" + ], + "properties": { + "id": { + "description": "The Subscription identifier string", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "Unique id for each customer", + "type": "string" + }, + "planId": { + "description": "Unique id for each plan", + "type": "string" + }, + "websiteId": { + "description": "Unique id for each website", + "type": "string" + }, + "invoiceId": { + "description": "Unique id for each invoice", + "type": "string" + }, + "deliveryContactId": { + "description": "Unique id for each delivery contact", + "type": "string" + }, + "billingContactId": { + "description": "Unique id for each billing contact", + "type": "string" + }, + "status": { + "description": "Subscription status", + "type": "string", + "readOnly": true + }, + "quantity": { + "description": "Quantity for each subscription. Default value to 1", + "type": "integer" + }, + "startTime": { + "description": "Subscription start time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "endTime": { + "description": "Subscription end time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "renewalTime": { + "description": "Subscription renewal time", + "type": "string", + "format": "date-time" + }, + "cancelledTime": { + "description": "Subscription cancelled time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "createdTime": { + "description": "Subscription created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "Subscription updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to subscription", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + }, + "customFields": { + "$ref": "#/definitions/ResourceCustomFields" + } + } + }, + "SubscriptionCancel": { + "type": "object", + "required": [ + "policy" + ], + "properties": { + "policy": { + "description": "Cancel policy", + "type": "string", + "enum": [ + "AT_NEXT_RENEWAL", + "NOW_WITH_PRORATA_REFUND", + "NOW_WITH_PRORATA_CREDIT", + "NOW_WITHOUT_REFUND", + "NOW_WITH_FULL_REFUND" + ] + } + } + }, + "SubscriptionSwitch": { + "type": "object", + "required": [ + "planId", + "policy" + ], + "properties": { + "planId": { + "description": "The plan identifier string", + "type": "string" + }, + "policy": { + "description": "Switch policy", + "type": "string", + "enum": [ + "AT_NEXT_RENEWAL", + "NOW_WITH_PRORATA_REFUND", + "NOW_WITH_PRORATA_CREDIT", + "NOW_WITHOUT_REFUND" + ] + }, + "websiteId": { + "description": "The website's ID", + "type": "string" + }, + "quantity": { + "description": "Quantity for each subscription. Default value to 1", + "type": "integer" + } + } + }, + "TaxCategory": { + "type": "object", + "properties": { + "id": { + "description": "The tax category identifier string", + "type": "string", + "readOnly": true, + "maxLength": 50, + "enum": [ + "99999", + "20010", + "40030", + "51020", + "51010", + "31000", + "30070" + ] + }, + "description": { + "description": "The tax category description", + "type": "string", + "maxLength": 512 + }, + "taxProvider": { + "description": "The tax category maps to a provider", + "type": "string", + "enum": [ + "TaxJar" + ] + }, + "_links": { + "description": "The links related to tax category", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Transaction": { + "type": "object", + "properties": { + "id": { + "description": "The transaction identifier string", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Transaction type", + "type": "string", + "readOnly": true, + "enum": [ + "authorize", + "capture", + "credit", + "refund", + "sale", + "void" + ] + }, + "result": { + "description": "Transaction result", + "type": "string", + "readOnly": true, + "enum": [ + "approved", + "conn_error", + "declined", + "never_sent", + "pending", + "pending_processor", + "timeout", + "unknown" + ] + }, + "amount": { + "description": "The transactions's amount", + "type": "number", + "format": "double", + "readOnly": true + }, + "currency": { + "description": "The transactions's currency", + "type": "string", + "readOnly": true + }, + "parentTransactionId": { + "description": "The transactions's parent ID", + "type": "string", + "readOnly": true + }, + "rebillNumber": { + "description": "The transactions's rebill number", + "type": "integer", + "readOnly": true + }, + "gatewayAccountId": { + "description": "The transactions's Gateway Account ID", + "type": "string", + "readOnly": true + }, + "gatewayResponse": { + "description": "The transactions's processor response", + "type": "string", + "readOnly": true + }, + "websiteId": { + "description": "Website's ID", + "type": "string", + "readOnly": true + }, + "customerId": { + "description": "Customer's ID", + "type": "string", + "readOnly": true + }, + "paymentCardId": { + "description": "Payment Card's ID", + "type": "string", + "readOnly": true + }, + "createdTime": { + "description": "Transaction created time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedTime": { + "description": "Transaction updated time", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "_links": { + "description": "The links related to transaction", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "TransactionRefund": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "description": "Refund amount", + "type": "number", + "format": "double" + } + } + }, + "Website": { + "type": "object", + "required": [ + "name", + "url", + "servicePhone", + "serviceEmail" + ], + "properties": { + "id": { + "description": "The website identifier string", + "type": "string", + "readOnly": true + }, + "name": { + "description": "The website's name", + "type": "string" + }, + "url": { + "description": "The website's domain address", + "type": "string" + }, + "servicePhone": { + "description": "The website's customer service phone number", + "type": "string" + }, + "serviceEmail": { + "description": "The website's customer service email address", + "type": "string", + "format": "email" + }, + "checkoutPageUri": { + "description": "Your own custom URI for this Checkout Page", + "type": "string" + }, + "webHookUrl": { + "description": "Webhook Url (only for POST/PUT)", + "type": "string" + }, + "webHookUsername": { + "description": "Webhook HTTP Authentication Username (only for POST/PUT)", + "type": "string" + }, + "webHookPassword": { + "description": "Webhook HTTP Authentication Password (only for POST/PUT)", + "type": "string" + }, + "createdTime": { + "description": "Website created time", + "type": "string", + "format": "date-time" + }, + "updatedTime": { + "description": "Website updated time", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "The links related to website", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Link" + } + }, + "customFields": { + "$ref": "#/definitions/ResourceCustomFields" + } + } + } + } +} diff --git a/lib/components/JsonSchema/json-schema.js b/lib/components/JsonSchema/json-schema.js index bb9fc09a..9fb73c3c 100644 --- a/lib/components/JsonSchema/json-schema.js +++ b/lib/components/JsonSchema/json-schema.js @@ -1,6 +1,5 @@ 'use strict'; -import {JsonPointer} from '../../utils/JsonPointer'; import {RedocComponent, BaseComponent} from '../base'; import {ElementRef} from 'angular2/angular2'; @@ -29,11 +28,12 @@ export default class JsonSchema extends BaseComponent { // TODO return; } + if (!schema.properties) return; let props = Object.keys(schema.properties).map(prop => { let propData = schema.properties[prop]; this.injectPropData(prop, propData); return propData; - }) + }); this.data.properties = props; @@ -55,12 +55,15 @@ export default class JsonSchema extends BaseComponent { if (propData.type === 'array') { let itemType = propData.items.type; - if (itemType === 'object') itemType = propData.items.title || 'object'; + if (itemType === 'object') { + itemType = propData.items.title || 'object'; + propData._pointer = propData.items._pointer; + } propData.type = `array of ${itemType}`; } if (propData.type === 'object') { - propData.type = propData.title || 'object' + propData.type = propData.title || 'object'; } }