{
  "openapi": "3.0.1",
  "info": {
    "title": "Lender Preferences",
    "version": "v1.1"
  },
  "tags": [
    {
      "name": "Lender Preferences"
    }
  ],
  "paths": {
    "/lender_preferences": {
      "get": {
        "summary": "Get lender preferences federated app",
        "tags": [
          "Lender Preferences"
        ],
        "description": "Use this endpoint to get bulk transfer settings, it returns a paginated index",
        "parameters": [
          {
            "name": "per_page",
            "in": "query",
            "description": "How many results to retrieve per call",
            "schema": {
              "type": "integer",
              "example": 25
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number of results to retrieve",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/lender_preferences"
                }
              }
            }
          },
          "403": {
            "description": "forbidden: your role does not allow to proceed"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://demo.snapdocsevault.com/api",
      "description": "Snapdocs Evault demo environment"
    },
    {
      "url": "https://www.snapdocsevault.com/api",
      "description": "Snapdocs Evault production environment"
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "paginated_index_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "example": "http://snapdocsevault.com/lender_preferences?page%5Bnumber%5D=1&page%5Bsize%5D=25",
            "description": "the current page"
          },
          "first": {
            "type": "string",
            "example": "http://snapdocsevault.com/lender_preferences?page%5Bnumber%5D=1&page%5Bsize%5D=25",
            "description": "the first page"
          },
          "prev": {
            "type": "string",
            "description": "the previous page"
          },
          "next": {
            "type": "string",
            "description": "the next page"
          },
          "last": {
            "type": "string",
            "description": "the last page"
          }
        },
        "description": "self descriptive link to access pagination"
      },
      "paginated_index_meta": {
        "type": "object",
        "description": "meta data for pagination",
        "properties": {
          "current_page": {
            "type": "integer",
            "example": 1,
            "description": "the current page"
          },
          "total_pages": {
            "type": "integer",
            "example": 2,
            "description": "the total number of pages"
          },
          "next_page": {
            "type": "integer",
            "example": 2,
            "description": "the next page"
          },
          "page_size": {
            "type": "integer",
            "example": 25,
            "description": "the number of items per page"
          },
          "total_count": {
            "type": "integer",
            "example": 35,
            "description": "the total number of items"
          }
        }
      },
      "right_holder_info": {
        "type": "object",
        "properties": {
          "mers_org": {
            "type": "string",
            "description": "The mers org of the transfer partner",
            "example": "0000001"
          },
          "name": {
            "type": "string",
            "description": "Name of the transfer partner",
            "example": "Ace Investor"
          },
          "edeliver": {
            "type": "boolean",
            "description": "Whether an edelivery should accompany the transfer",
            "example": "true"
          }
        }
      },
      "lender_preference": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "5279e4ca-cd04-49b3-9863-d94e9acc35fe",
            "description": "The lender_preference id"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "partner_name": {
                "type": "string",
                "example": "Acme Lender",
                "description": "Name of the partner"
              },
              "transfer_partners": {
                "type": "object",
                "description": "transfer details and edelivery preference",
                "properties": {
                  "controller": {
                    "$ref": "#/components/schemas/right_holder_info"
                  },
                  "location": {
                    "$ref": "#/components/schemas/right_holder_info"
                  },
                  "master_servicer": {
                    "$ref": "#/components/schemas/right_holder_info"
                  },
                  "subservicer": {
                    "$ref": "#/components/schemas/right_holder_info"
                  },
                  "delegatee_for_transfers": {
                    "$ref": "#/components/schemas/right_holder_info"
                  },
                  "secured_party": {
                    "$ref": "#/components/schemas/right_holder_info"
                  },
                  "secured_party_delegatee": {
                    "$ref": "#/components/schemas/right_holder_info"
                  }
                }
              }
            }
          }
        }
      },
      "lender_preferences": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/lender_preference"
            }
          },
          "links": {
            "$ref": "#/components/schemas/paginated_index_links"
          },
          "meta": {
            "$ref": "#/components/schemas/paginated_index_meta"
          }
        }
      }
    }
  }
}