text: "use strict";
  /* tslint:disable */
  /* eslint-disable */
  /**
   * Lob
   * The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. <p> Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
   *
   * The version of the OpenAPI document: 1.3.0
   * Contact: lob-openapi@lob.com
   *
   * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
   * https://openapi-generator.tech
   * Do not edit the class manually.
   */
  var __extends =
    (this && this.__extends) ||
    (function () {
      var extendStatics = function (d, b) {
        extendStatics =
          Object.setPrototypeOf ||
          ({ __proto__: [] } instanceof Array &&
            function (d, b) {
              d.__proto__ = b;
            }) ||
          function (d, b) {
            for (var p in b)
              if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
          };
        return extendStatics(d, b);
      };
      return function (d, b) {
        if (typeof b !== "function" && b !== null)
          throw new TypeError(
            "Class extends value " + String(b) + " is not a constructor or null"
          );
        extendStatics(d, b);
        function __() {
          this.constructor = d;
        }
        d.prototype =
          b === null
            ? Object.create(b)
            : ((__.prototype = b.prototype), new __());
      };
    })();
  var __assign =
    (this && this.__assign) ||
    function () {
      __assign =
        Object.assign ||
        function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s)
              if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
          }
          return t;
        };
      return __assign.apply(this, arguments);
    };
  var __awaiter =
    (this && this.__awaiter) ||
    function (thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P
          ? value
          : new P(function (resolve) {
              resolve(value);
            });
      }
      return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done
            ? resolve(result.value)
            : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
  var __generator =
    (this && this.__generator) ||
    function (thisArg, body) {
      var _ = {
          label: 0,
          sent: function () {
            if (t[0] & 1) throw t[1];
            return t[1];
          },
          trys: [],
          ops: [],
        },
        f,
        y,
        t,
        g;
      return (
        (g = { next: verb(0), throw: verb(1), return: verb(2) }),
        typeof Symbol === "function" &&
          (g[Symbol.iterator] = function () {
            return this;
          }),
        g
      );
      function verb(n) {
        return function (v) {
          return step([n, v]);
        };
      }
      function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_)
          try {
            if (
              ((f = 1),
              y &&
                (t =
                  op[0] & 2
                    ? y["return"]
                    : op[0]
                    ? y["throw"] || ((t = y["return"]) && t.call(y), 0)
                    : y.next) &&
                !(t = t.call(y, op[1])).done)
            )
              return t;
            if (((y = 0), t)) op = [op[0] & 2, t.value];
            switch (op[0]) {
              case 0:
              case 1:
                t = op;
                break;
              case 4:
                _.label++;
                return { value: op[1], done: false };
              case 5:
                _.label++;
                y = op[1];
                op = [0];
                continue;
              case 7:
                op = _.ops.pop();
                _.trys.pop();
                continue;
              default:
                if (
                  !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) &&
                  (op[0] === 6 || op[0] === 2)
                ) {
                  _ = 0;
                  continue;
                }
                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
                  _.label = op[1];
                  break;
                }
                if (op[0] === 6 && _.label < t[1]) {
                  _.label = t[1];
                  t = op;
                  break;
                }
                if (t && _.label < t[2]) {
                  _.label = t[2];
                  _.ops.push(op);
                  break;
                }
                if (t[2]) _.ops.pop();
                _.trys.pop();
                continue;
            }
            op = body.call(thisArg, _);
          } catch (e) {
            op = [6, e];
            y = 0;
          } finally {
            f = t = 0;
          }
        if (op[0] & 5) throw op[1];
        return { value: op[0] ? op[1] : void 0, done: true };
      }
    };
  var __importDefault =
    (this && this.__importDefault) ||
    function (mod) {
      return mod && mod.__esModule ? mod : { default: mod };
    };
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.PostcardsApi =
    exports.PostcardsApiFp =
    exports.PostcardsApiAxiosParamCreator =
      void 0;
  var axios_1 = __importDefault(require("axios"));
  // Some imports not used depending on template conditions
  // @ts-ignore
  var common_1 = require("../common");
  // @ts-ignore
  var base_1 = require("../base");
  // @ts-ignore
  var models_1 = require("../models");
  // @ts-ignore
  var models_2 = require("../models");
  // @ts-ignore
  var models_3 = require("../models");
  /**
   * PostcardsApi - axios parameter creator
   * @export
   */
  var PostcardsApiAxiosParamCreator = function (configuration) {
    var _this = this;
    return {
      /**
       * Creates a new postcard given information
       * @summary create
       * @param {PostcardEditable} postcardEditable
       * @param {string} [idempotencyKey] A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our [implementation guide](https://www.lob.com/guides#idempotent_request).
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardCreate: function (postcardEditable, idempotencyKey, options) {
        if (options === void 0) {
          options = {};
        }
        return __awaiter(_this, void 0, void 0, function () {
          var localVarPath,
            localVarUrlObj,
            baseOptions,
            localVarRequestOptions,
            localVarHeaderParameter,
            localVarQueryParameter,
            headersFromBaseOptions;
          return __generator(this, function (_a) {
            // verify required parameter 'postcardEditable' is not null or undefined
            (0,
            common_1.assertParamExists)("postcardCreate", "postcardEditable", postcardEditable);
            localVarPath = "/postcards";
            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
            if (configuration) {
              baseOptions = configuration.baseOptions;
            }
            localVarRequestOptions = __assign(
              __assign({ method: "POST" }, baseOptions),
              options
            );
            localVarHeaderParameter = {};
            localVarQueryParameter = {};
            // authentication basicAuth required
            // http basic authentication required
            (0,
            common_1.setBasicAuthToObject)(localVarRequestOptions, configuration);
            if (idempotencyKey !== undefined && idempotencyKey !== null) {
              localVarHeaderParameter["Idempotency-Key"] = String(idempotencyKey);
            }
            localVarHeaderParameter["Content-Type"] = "application/json";
            (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
            headersFromBaseOptions =
              baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = __assign(
              __assign(
                __assign({}, localVarHeaderParameter),
                headersFromBaseOptions
              ),
              options.headers
            );
            localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(
              postcardEditable,
              localVarRequestOptions,
              configuration
            );
            return [
              2 /*return*/,
              {
                url: (0, common_1.toPathString)(localVarUrlObj),
                options: localVarRequestOptions,
              },
            ];
          });
        });
      },
      /**
       * Completely removes a postcard from production. This can only be done if the postcard has a `send_date` and the `send_date` has not yet passed. If the postcard is successfully canceled, you will not be charged for it. Read more on [cancellation windows](#section/Cancellation-Windows) and [scheduling](#section/Scheduled-Mailings). Scheduling and cancellation is a premium feature. Upgrade to the appropriate [Print & Mail Edition](https://dashboard.lob.com/#/settings/editions) to gain access.
       * @summary cancel
       * @param {string} pscId id of the postcard
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardDelete: function (pscId, options) {
        if (options === void 0) {
          options = {};
        }
        return __awaiter(_this, void 0, void 0, function () {
          var localVarPath,
            localVarUrlObj,
            baseOptions,
            localVarRequestOptions,
            localVarHeaderParameter,
            localVarQueryParameter,
            headersFromBaseOptions;
          return __generator(this, function (_a) {
            // verify required parameter 'pscId' is not null or undefined
            (0, common_1.assertParamExists)("postcardDelete", "pscId", pscId);
            localVarPath = "/postcards/{psc_id}".replace(
              "{".concat("psc_id", "}"),
              encodeURIComponent(String(pscId))
            );
            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
            if (configuration) {
              baseOptions = configuration.baseOptions;
            }
            localVarRequestOptions = __assign(
              __assign({ method: "DELETE" }, baseOptions),
              options
            );
            localVarHeaderParameter = {};
            localVarQueryParameter = {};
            // authentication basicAuth required
            // http basic authentication required
            (0,
            common_1.setBasicAuthToObject)(localVarRequestOptions, configuration);
            (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
            headersFromBaseOptions =
              baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = __assign(
              __assign(
                __assign({}, localVarHeaderParameter),
                headersFromBaseOptions
              ),
              options.headers
            );
            return [
              2 /*return*/,
              {
                url: (0, common_1.toPathString)(localVarUrlObj),
                options: localVarRequestOptions,
              },
            ];
          });
        });
      },
      /**
       * Retrieves the details of an existing postcard. You need only supply the unique customer identifier that was returned upon postcard creation.
       * @summary get
       * @param {string} pscId id of the postcard
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardRetrieve: function (pscId, options) {
        if (options === void 0) {
          options = {};
        }
        return __awaiter(_this, void 0, void 0, function () {
          var localVarPath,
            localVarUrlObj,
            baseOptions,
            localVarRequestOptions,
            localVarHeaderParameter,
            localVarQueryParameter,
            headersFromBaseOptions;
          return __generator(this, function (_a) {
            // verify required parameter 'pscId' is not null or undefined
            (0, common_1.assertParamExists)("postcardRetrieve", "pscId", pscId);
            localVarPath = "/postcards/{psc_id}".replace(
              "{".concat("psc_id", "}"),
              encodeURIComponent(String(pscId))
            );
            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
            if (configuration) {
              baseOptions = configuration.baseOptions;
            }
            localVarRequestOptions = __assign(
              __assign({ method: "GET" }, baseOptions),
              options
            );
            localVarHeaderParameter = {};
            localVarQueryParameter = {};
            // authentication basicAuth required
            // http basic authentication required
            (0,
            common_1.setBasicAuthToObject)(localVarRequestOptions, configuration);
            (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
            headersFromBaseOptions =
              baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = __assign(
              __assign(
                __assign({}, localVarHeaderParameter),
                headersFromBaseOptions
              ),
              options.headers
            );
            return [
              2 /*return*/,
              {
                url: (0, common_1.toPathString)(localVarUrlObj),
                options: localVarRequestOptions,
              },
            ];
          });
        });
      },
      /**
       * Returns a list of your postcards. The addresses are returned sorted by creation date, with the most recently created addresses appearing first.
       * @summary list
       * @param {number} [limit] How many results to return.
       * @param {string} [before] A reference to a list entry used for paginating to the previous set of entries. This field is pre-populated in the &#x60;previous_url&#x60; field in the return response.
       * @param {string} [after] A reference to a list entry used for paginating to the next set of entries. This field is pre-populated in the &#x60;next_url&#x60; field in the return response.
       * @param {Array<string>} [include] Request that the response include the total count by specifying &#x60;include[]&#x3D;total_count&#x60;.
       * @param {{ [key: string]: string; }} [dateCreated] Filter by date created.
       * @param {{ [key: string]: string; }} [metadata] Filter by metadata key-value pair&#x60;.
       * @param {PostcardSize} [size] Specifies the size of the postcard. Only &#x60;4x6&#x60; postcards can be sent to international destinations.
       * @param {boolean} [scheduled] * &#x60;true&#x60; - only return orders (past or future) where &#x60;send_date&#x60; is greater than &#x60;date_created&#x60; * &#x60;false&#x60; - only return orders where &#x60;send_date&#x60; is equal to &#x60;date_created&#x60;
       * @param {SendDate} [sendDate] Filter by ISO-8601 date or datetime, e.g. &#x60;{ gt: \&#39;2012-01-01\&#39;, lt: \&#39;2012-01-31T12:34:56Z\&#39; }&#x60; where &#x60;gt&#x60; is &gt;, &#x60;lt&#x60; is &lt;, &#x60;gte&#x60; is ≥, and &#x60;lte&#x60; is ≤.
       * @param {MailType} [mailType] A string designating the mail postage type: * &#x60;usps_first_class&#x60; - (default) * &#x60;usps_standard&#x60; - a [cheaper option](https://lob.com/pricing/print-mail#compare) which is less predictable and takes longer to deliver. &#x60;usps_standard&#x60; cannot be used with &#x60;4x6&#x60; postcards or for any postcards sent outside of the United States.
       * @param {object} [sortBy] Sorts items by ascending or descending dates. Use either &#x60;date_created&#x60; or &#x60;send_date&#x60;, not both.
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardsList: function (
        limit,
        before,
        after,
        include,
        dateCreated,
        metadata,
        size,
        scheduled,
        sendDate,
        mailType,
        sortBy,
        options
      ) {
        if (options === void 0) {
          options = {};
        }
        return __awaiter(_this, void 0, void 0, function () {
          var localVarPath,
            localVarUrlObj,
            baseOptions,
            localVarRequestOptions,
            localVarHeaderParameter,
            localVarQueryParameter,
            headersFromBaseOptions;
          return __generator(this, function (_a) {
            localVarPath = "/postcards";
            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
            if (configuration) {
              baseOptions = configuration.baseOptions;
            }
            localVarRequestOptions = __assign(
              __assign({ method: "GET" }, baseOptions),
              options
            );
            localVarHeaderParameter = {};
            localVarQueryParameter = {};
            // authentication basicAuth required
            // http basic authentication required
            (0,
            common_1.setBasicAuthToObject)(localVarRequestOptions, configuration);
            if (limit !== undefined) {
              localVarQueryParameter["limit"] = limit;
            }
            if (before !== undefined) {
              localVarQueryParameter["before"] = before;
            }
            if (after !== undefined) {
              localVarQueryParameter["after"] = after;
            }
            if (include) {
              localVarQueryParameter["include"] = (0, common_1.valueToString)(
                include
              );
            }
            if (dateCreated !== undefined) {
              localVarQueryParameter["date_created"] = (0,
              common_1.valueToString)(dateCreated);
            }
            if (metadata !== undefined) {
              localVarQueryParameter["metadata"] = (0, common_1.valueToString)(
                metadata
              );
            }
            if (size !== undefined) {
              localVarQueryParameter["size"] = (0, common_1.valueToString)(size);
            }
            if (scheduled !== undefined) {
              localVarQueryParameter["scheduled"] = scheduled;
            }
            if (sendDate !== undefined) {
              localVarQueryParameter["send_date"] = (0, common_1.valueToString)(
                sendDate
              );
            }
            if (mailType !== undefined) {
              localVarQueryParameter["mail_type"] = (0, common_1.valueToString)(
                mailType
              );
            }
            if (sortBy !== undefined) {
              localVarQueryParameter["sort_by"] = (0, common_1.valueToString)(
                sortBy
              );
            }
            (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
            headersFromBaseOptions =
              baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = __assign(
              __assign(
                __assign({}, localVarHeaderParameter),
                headersFromBaseOptions
              ),
              options.headers
            );
            return [
              2 /*return*/,
              {
                url: (0, common_1.toPathString)(localVarUrlObj),
                options: localVarRequestOptions,
              },
            ];
          });
        });
      },
    };
  };
  exports.PostcardsApiAxiosParamCreator = PostcardsApiAxiosParamCreator;
  /**
   * PostcardsApi - functional programming interface
   * @export
   */
  var PostcardsApiFp = function (configuration) {
    var localVarAxiosParamCreator = (0, exports.PostcardsApiAxiosParamCreator)(
      configuration
    );
    return {
      /**
       * Creates a new postcard given information
       * @summary create
       * @param {PostcardEditable} postcardEditable
       * @param {string} [idempotencyKey] A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our [implementation guide](https://www.lob.com/guides#idempotent_request).
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardCreate: function (postcardEditable, idempotencyKey, options) {
        return __awaiter(this, void 0, void 0, function () {
          var localVarAxiosArgs;
          return __generator(this, function (_a) {
            switch (_a.label) {
              case 0:
                return [
                  4 /*yield*/,
                  localVarAxiosParamCreator.postcardCreate(
                    postcardEditable,
                    idempotencyKey,
                    options
                  ),
                ];
              case 1:
                localVarAxiosArgs = _a.sent();
                return [
                  2 /*return*/,
                  (0, common_1.createRequestFunction)(
                    localVarAxiosArgs,
                    axios_1.default,
                    base_1.BASE_PATH,
                    configuration
                  ),
                ];
            }
          });
        });
      },
      /**
       * Completely removes a postcard from production. This can only be done if the postcard has a `send_date` and the `send_date` has not yet passed. If the postcard is successfully canceled, you will not be charged for it. Read more on [cancellation windows](#section/Cancellation-Windows) and [scheduling](#section/Scheduled-Mailings). Scheduling and cancellation is a premium feature. Upgrade to the appropriate [Print & Mail Edition](https://dashboard.lob.com/#/settings/editions) to gain access.
       * @summary cancel
       * @param {string} pscId id of the postcard
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardDelete: function (pscId, options) {
        return __awaiter(this, void 0, void 0, function () {
          var localVarAxiosArgs;
          return __generator(this, function (_a) {
            switch (_a.label) {
              case 0:
                return [
                  4 /*yield*/,
                  localVarAxiosParamCreator.postcardDelete(pscId, options),
                ];
              case 1:
                localVarAxiosArgs = _a.sent();
                return [
                  2 /*return*/,
                  (0, common_1.createRequestFunction)(
                    localVarAxiosArgs,
                    axios_1.default,
                    base_1.BASE_PATH,
                    configuration
                  ),
                ];
            }
          });
        });
      },
      /**
       * Retrieves the details of an existing postcard. You need only supply the unique customer identifier that was returned upon postcard creation.
       * @summary get
       * @param {string} pscId id of the postcard
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardRetrieve: function (pscId, options) {
        return __awaiter(this, void 0, void 0, function () {
          var localVarAxiosArgs;
          return __generator(this, function (_a) {
            switch (_a.label) {
              case 0:
                return [
                  4 /*yield*/,
                  localVarAxiosParamCreator.postcardRetrieve(pscId, options),
                ];
              case 1:
                localVarAxiosArgs = _a.sent();
                return [
                  2 /*return*/,
                  (0, common_1.createRequestFunction)(
                    localVarAxiosArgs,
                    axios_1.default,
                    base_1.BASE_PATH,
                    configuration
                  ),
                ];
            }
          });
        });
      },
      /**
       * Returns a list of your postcards. The addresses are returned sorted by creation date, with the most recently created addresses appearing first.
       * @summary list
       * @param {number} [limit] How many results to return.
       * @param {string} [before] A reference to a list entry used for paginating to the previous set of entries. This field is pre-populated in the &#x60;previous_url&#x60; field in the return response.
       * @param {string} [after] A reference to a list entry used for paginating to the next set of entries. This field is pre-populated in the &#x60;next_url&#x60; field in the return response.
       * @param {Array<string>} [include] Request that the response include the total count by specifying &#x60;include[]&#x3D;total_count&#x60;.
       * @param {{ [key: string]: string; }} [dateCreated] Filter by date created.
       * @param {{ [key: string]: string; }} [metadata] Filter by metadata key-value pair&#x60;.
       * @param {PostcardSize} [size] Specifies the size of the postcard. Only &#x60;4x6&#x60; postcards can be sent to international destinations.
       * @param {boolean} [scheduled] * &#x60;true&#x60; - only return orders (past or future) where &#x60;send_date&#x60; is greater than &#x60;date_created&#x60; * &#x60;false&#x60; - only return orders where &#x60;send_date&#x60; is equal to &#x60;date_created&#x60;
       * @param {SendDate} [sendDate] Filter by ISO-8601 date or datetime, e.g. &#x60;{ gt: \&#39;2012-01-01\&#39;, lt: \&#39;2012-01-31T12:34:56Z\&#39; }&#x60; where &#x60;gt&#x60; is &gt;, &#x60;lt&#x60; is &lt;, &#x60;gte&#x60; is ≥, and &#x60;lte&#x60; is ≤.
       * @param {MailType} [mailType] A string designating the mail postage type: * &#x60;usps_first_class&#x60; - (default) * &#x60;usps_standard&#x60; - a [cheaper option](https://lob.com/pricing/print-mail#compare) which is less predictable and takes longer to deliver. &#x60;usps_standard&#x60; cannot be used with &#x60;4x6&#x60; postcards or for any postcards sent outside of the United States.
       * @param {object} [sortBy] Sorts items by ascending or descending dates. Use either &#x60;date_created&#x60; or &#x60;send_date&#x60;, not both.
       * @param {*} [options] Override http request option.
       * @throws {RequiredError}
       */
      postcardsList: function (
        limit,
        before,
        after,
        include,
        dateCreated,
        metadata,
        size,
        scheduled,
        sendDate,
        mailType,
        sortBy,
        options
      ) {
        return __awaiter(this, void 0, void 0, function () {
          var localVarAxiosArgs;
          return __generator(this, function (_a) {
            switch (_a.label) {
              case 0:
                return [
                  4 /*yield*/,
                  localVarAxiosParamCreator.postcardsList(
                    limit,
                    before,
                    after,
                    include,
                    dateCreated,
                    metadata,
                    size,
                    scheduled,
                    sendDate,
                    mailType,
                    sortBy,
                    options
                  ),
                ];
              case 1:
                localVarAxiosArgs = _a.sent();
                return [
                  2 /*return*/,
                  (0, common_1.createRequestFunction)(
                    localVarAxiosArgs,
                    axios_1.default,
                    base_1.BASE_PATH,
                    configuration
                  ),
                ];
            }
          });
        });
      },
    };
  };
  exports.PostcardsApiFp = PostcardsApiFp;
  /**
   * PostcardsApi - object-oriented interface
   * @export
   * @class PostcardsApi
   * @extends {BaseAPI}
   */
  var PostcardsApi = /** @class */ (function (_super) {
    __extends(PostcardsApi, _super);
    function PostcardsApi() {
      return (_super !== null && _super.apply(this, arguments)) || this;
    }
    /**
     * Creates a new postcard given information
     * @summary create
     * @param {PostcardEditable} postcardEditable
     * @param {string} [idempotencyKey] A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our [implementation guide](https://www.lob.com/guides#idempotent_request).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PostcardsApi
     */
    PostcardsApi.prototype.create = function (
      postcardEditable,
      idempotencyKey,
      options
    ) {
      var _this = this;
      return (0, exports.PostcardsApiFp)(this.configuration)
        .postcardCreate(postcardEditable, idempotencyKey, options)
        .then(function (request) {
          return request(_this.axios, _this.basePath);
        })
        .then(function (response) {
          return new models_1.Postcard(response.data);
        })
        .catch(function (error) {
          var _a, _b, _c;
          if (
            (_c =
              (_b =
                (_a = error.response) === null || _a === void 0
                  ? void 0
                  : _a.data) === null || _b === void 0
                ? void 0
                : _b.error) === null || _c === void 0
              ? void 0
              : _c.message
          ) {
            error.message = error.response.data.error.message;
          }
          throw error;
        });
    };
    /**
     * Completely removes a postcard from production. This can only be done if the postcard has a `send_date` and the `send_date` has not yet passed. If the postcard is successfully canceled, you will not be charged for it. Read more on [cancellation windows](#section/Cancellation-Windows) and [scheduling](#section/Scheduled-Mailings). Scheduling and cancellation is a premium feature. Upgrade to the appropriate [Print & Mail Edition](https://dashboard.lob.com/#/settings/editions) to gain access.
     * @summary cancel
     * @param {string} pscId id of the postcard
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PostcardsApi
     */
    PostcardsApi.prototype.cancel = function (pscId, options) {
      var _this = this;
      return (0, exports.PostcardsApiFp)(this.configuration)
        .postcardDelete(pscId, options)
        .then(function (request) {
          return request(_this.axios, _this.basePath);
        })
        .then(function (response) {
          return new models_2.PostcardDeletion(response.data);
        })
        .catch(function (error) {
          var _a, _b, _c;
          if (
            (_c =
              (_b =
                (_a = error.response) === null || _a === void 0
                  ? void 0
                  : _a.data) === null || _b === void 0
                ? void 0
                : _b.error) === null || _c === void 0
              ? void 0
              : _c.message
          ) {
            error.message = error.response.data.error.message;
          }
          throw error;
        });
    };
    /**
     * Retrieves the details of an existing postcard. You need only supply the unique customer identifier that was returned upon postcard creation.
     * @summary get
     * @param {string} pscId id of the postcard
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PostcardsApi
     */
    PostcardsApi.prototype.get = function (pscId, options) {
      var _this = this;
      return (0, exports.PostcardsApiFp)(this.configuration)
        .postcardRetrieve(pscId, options)
        .then(function (request) {
          return request(_this.axios, _this.basePath);
        })
        .then(function (response) {
          return new models_1.Postcard(response.data);
        })
        .catch(function (error) {
          var _a, _b, _c;
          if (
            (_c =
              (_b =
                (_a = error.response) === null || _a === void 0
                  ? void 0
                  : _a.data) === null || _b === void 0
                ? void 0
                : _b.error) === null || _c === void 0
              ? void 0
              : _c.message
          ) {
            error.message = error.response.data.error.message;
          }
          throw error;
        });
    };
    /**
     * Returns a list of your postcards. The addresses are returned sorted by creation date, with the most recently created addresses appearing first.
     * @summary list
     * @param {number} [limit] How many results to return.
     * @param {string} [before] A reference to a list entry used for paginating to the previous set of entries. This field is pre-populated in the &#x60;previous_url&#x60; field in the return response.
     * @param {string} [after] A reference to a list entry used for paginating to the next set of entries. This field is pre-populated in the &#x60;next_url&#x60; field in the return response.
     * @param {Array<string>} [include] Request that the response include the total count by specifying &#x60;include[]&#x3D;total_count&#x60;.
     * @param {{ [key: string]: string; }} [dateCreated] Filter by date created.
     * @param {{ [key: string]: string; }} [metadata] Filter by metadata key-value pair&#x60;.
     * @param {PostcardSize} [size] Specifies the size of the postcard. Only &#x60;4x6&#x60; postcards can be sent to international destinations.
     * @param {boolean} [scheduled] * &#x60;true&#x60; - only return orders (past or future) where &#x60;send_date&#x60; is greater than &#x60;date_created&#x60; * &#x60;false&#x60; - only return orders where &#x60;send_date&#x60; is equal to &#x60;date_created&#x60;
     * @param {SendDate} [sendDate] Filter by ISO-8601 date or datetime, e.g. &#x60;{ gt: \&#39;2012-01-01\&#39;, lt: \&#39;2012-01-31T12:34:56Z\&#39; }&#x60; where &#x60;gt&#x60; is &gt;, &#x60;lt&#x60; is &lt;, &#x60;gte&#x60; is ≥, and &#x60;lte&#x60; is ≤.
     * @param {MailType} [mailType] A string designating the mail postage type: * &#x60;usps_first_class&#x60; - (default) * &#x60;usps_standard&#x60; - a [cheaper option](https://lob.com/pricing/print-mail#compare) which is less predictable and takes longer to deliver. &#x60;usps_standard&#x60; cannot be used with &#x60;4x6&#x60; postcards or for any postcards sent outside of the United States.
     * @param {object} [sortBy] Sorts items by ascending or descending dates. Use either &#x60;date_created&#x60; or &#x60;send_date&#x60;, not both.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PostcardsApi
     */
    PostcardsApi.prototype.list = function (
      limit,
      before,
      after,
      include,
      dateCreated,
      metadata,
      size,
      scheduled,
      sendDate,
      mailType,
      sortBy,
      options
    ) {
      var _this = this;
      return (0, exports.PostcardsApiFp)(this.configuration)
        .postcardsList(
          limit,
          before,
          after,
          include,
          dateCreated,
          metadata,
          size,
          scheduled,
          sendDate,
          mailType,
          sortBy,
          options
        )
        .then(function (request) {
          return request(_this.axios, _this.basePath);
        })
        .then(function (response) {
          return new models_3.PostcardList(response.data);
        })
        .catch(function (error) {
          var _a, _b, _c;
          if (
            (_c =
              (_b =
                (_a = error.response) === null || _a === void 0
                  ? void 0
                  : _a.data) === null || _b === void 0
                ? void 0
                : _b.error) === null || _c === void 0
              ? void 0
              : _c.message
          ) {
            error.message = error.response.data.error.message;
          }
          throw error;
        });
    };
    return PostcardsApi;
  })(base_1.BaseAPI);
  exports.PostcardsApi = PostcardsApi;
  /**
   * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
   * https://openapi-generator.tech
   * Do not edit the class manually.
   */
  