{
  "swagger": "2.0",
  "info": {
    "title": "Version 2",
    "description": "# Introduction\nWelcome to the Ease API!\n\nThe provided API endpoints are organized around REST principles, with versioned routes and intuitive naming, accessed using the standard HTTP verbs.\n\nSpecifically, we use GET to request one or more resources, POST to create one or more resources, PUT/PATCH to edit one or more resources, and DELETE to delete one or more resources.\n\nThe endpoints consume JSON data and provide JSON responses, while providing standard HTTP response codes.\n\n<strong>The current API version is v2.</strong>\n\n# Authentication\nAuthentication is straightforward: we require an <a target=\"_blank\" href='https://tools.ietf.org/html/rfc6750'>OAuth bearer access token</a> to be provided within the Authorization header for each API request.\n\nIf an invalid token is provided in an API request, an error response will be returned: 401 Unauthorized.\n\nThere are two ways to gain access to a token:\n\n  1) manually create a Token within the Ease website that never expires, or\n\n  2) participate in an OAuth flow to create a token with a limited lifetime, plus a refresh token used to request a fresh token once your token expires.\n\nSince each token is involved in both Authentication and Authorization, the details of each way is discussed in detail in the Authorization section below.\n\nHowever you access your token, please be aware that it's your responsibility to secure it. Your token authorizes access to your Ease data. We recommend that you do not share it via email nor store within your code as plain-text.\n\nWe further recommend that if you choose to store it outside of Ease, it should be stored encrypted, shared only using encrypted peer-to-peer software, and only with those people you trust with your Ease data.\n\n<em>An Ease employee will never ask for your token.</em>\n\n# Authorization\nAs explained above, to access any API endpoint, you must first gain access to an OAuth bearer access token, or simply 'token'. In addition to authenticating your request, this token acts as a key into its authorizations persisted on our servers.\n\nBefore we go into the details on the two different ways to gain access to a token discussed above, we will provide some basics on how authorization information is associated with a token.\n\n<b>BASICS OF BEARER ACCESS TOKEN</b>\n\nEach token has associated one or more <b>Scopes</b>. A Scope authorizes access to a subset of the API endpoints.\n\nYou will notice in this documentation that each API endpoint lists the Scope(s) that authorize access (for example, access to the <a target=\"_blank\" href='/api/docs/v2#operation/Enrollment_GetMembers'>GET enrollment members</a> endpoint is enabled with the 'export_enrollment' Scope). This helps you determine the Scopes you need for your <b>Ease Application</b>. How to manage your Ease Application is discussed in detail below.\n\nYou may also work with your Ease representative to determine your appropriate Scope(s).\n\n<b>MANAGING YOUR EASE APPLICATION</b>\n\n<em>NOTE: To manage your Ease Applications using the Ease website, please reach out to your Ease Representative to enable this functionality.</em>\n\nTo create any token, an Ease Application must first be created using the Ease website. Note that this Ease Application Id is the client_id referenced in the OAuth flow.\n\nTo do this, login to the Ease website and go to your Partner or Broker Profile page, then click Settings-> Applications. (If your Ease account is an 'Application', then you will be taken directly to this page on login.)\n\nOn this page, you will see a list of your Ease Applications. If this list is empty, then create one by clicking on the 'Add Application' button.\n\nA form will pop-up. First enter the name. If using the OAuth flow, this name will show when permission is requested from your user.\n\nIf you are using the OAuth flow, please enter the <b>'Redirect URI'</b> (this is discussed in more depth below in the OAuth section.) Note that, if provided, this URI must be accessible from outside your firewall.\n\nChoose only those Scopes that you need. When using the OAuth flow, you want to request as few permissions as possible. It is best to only include those Scopes that you require to gain access to the API endpoints used by your external application.\n\nFinally, you may optionally want to limit the IP addresses that may use this Ease Application. If so, enter those IP addresses under IP Restrictions.\n\nClick 'Save' and you have a new Ease Application! With this, you may now create tokens.\n\nAs mentioned above, there are two ways to gain access to a token. Each is discussed in its own section below.\n\n<b>TOKEN CREATED IN EASE UI</b>\n\nIf you only want API access to data that you already have access to in Ease, then creating an Ease Token using the Ease website is the simplest approach.\n\nTo do this, go to Applications as mentioned in the above section. In the list of Applications, click on the name (far left column) that has the Scopes you need.\n\nIn the form that displays, click on the 'Add Token' button: a pop-up will then show.\n\nIn the pop-up, you can set an expiration date for your token, or you can leave it blank.\n\nFill-in the Company Id that this Token applies to. This may be your Partner/Broker/Application Company ID that is listed on this same page, or the ID of one of your managed companies.\n\nFinally, select the Scopes that you would like to apply for this Token. This dropdown list includes all of the Scopes included in the Ease Application. Only select those Scopes that this token needs for its API calls.\n\nClick 'Save' and your Token is created!\n\nTo view the actual token value to be used within the Authorization header, click on the link under the Token header for the Token of interest. The Token value to include in the header is listed at the top of the pop-up.\n\n<b>TOKEN CREATED IN OAUTH FLOW</b>\n\nA more robust approach to authorization is provided by our OAuth implementation. We use the <a target=\"_blank\" href='https://tools.ietf.org/html/rfc6749#section-4.1'>Authorization Code Flow</a>.\n\nOur OAuth implementation allows other Companies, Partners, and Brokers to give you permission to access their data.\n\n<em>This powerful feature allows you to create an external applications that syncs data with our shared customers.</em>\n\nUsing this approach, both a bearer access token and a <b>refresh token</b> are created and shared with your external application.\n\nThe refresh token is used to request the creation of a new bearer access token once the current one expires.\n\nEach bearer access token has a lifetime of one hour. A refresh token can be used indefinitely, or at least until your client revokes access.\n\nNote that before you can complete this flow, you must 'Generate New Secret' for your Ease Application. This can be done only one time per Ease Application, and the generated secret is only accessible to you directly after creating it. To generate the secret, login to the Ease website and go to the Application page as described above. If a secret has not yet been generated, then you will see a 'Generate New Secret' link. Click on that link to generate the secret. Once displayed, copy the secret and store it in a secure location, preferably encrypted, until you are ready to use it in the below flow.\n\nA typical flow for your external application, or app, is as follows:\n\n  1) Your app sends the user to the <a href='/api/docs/v2#operation/EaseConnect_GetAuthCode'>OAuth Code endpoint</a> with the required parameters. If the provided parameters are valid, this then redirects to an Ease Login page.\n\n  2) The user login is processed. If valid, the user is then asked to grant access to the Scopes your app has requested. Recall that these Scopes were configured in the Ease Application discussed above.\n\n  3) If the user grants you this access, Ease redirects the user to your redirect uri (as configured in the Ease Application) and includes an authorization code and your provided state in the response.\n\n  4) Your app receives this authorization code and then POST's it to the <a href='/api/docs/v2#operation/EaseConnect_GetAccessTokenPost'>access token endpoint</a> with a grant_type of 'authorization_code' and the above generated secret, among other data. This is done to exchange this authorization code for a bearer access token.\n\n  5) Ease receives the POST of the authorization code, and if the provided data is valid, responds with a bearer access token that can then be used to make API calls. Note that a refresh token is also returned, as mentioned above: it is used to request a new bearer access token once the current one expires.\n\nThis is also captured in the below diagram, taken directly from the <a target=\"_blank\" href='https://tools.ietf.org/html/rfc6749#section-4.1'>OAuth 2.0 RFC, Section 4.1</a>:\n<img src='data:image/png;base64,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' alt='Authorization Code Flow'>\n\nTo use the refresh token to request a new bearer access token, POST to the <a href='/api/docs/v2#operation/EaseConnect_GetAccessTokenPost'>access token endpoint</a> with a grant_type of 'refresh_token'.\n\nTo help you implement this flow, the following section provides helpful suggestions.\n\n<b>SUGGESTIONS FOR IMPLEMENTING AN OAUTH FLOW</b>\n\nPlease become familiar with the Ease Application that you manage using the Ease website, as discussed in detail above. Recall that your Ease Application contains both the redirect uri and the Scopes your app needs to call the API endpoints.\n\nAlso, become familiar with Scopes. Notice that this API documentation lists each of the Scopes that authorizes access to that endpoint. Only choose the Scopes that you need for the endpoints you will use in your external application.\n\nWhen kicking-off the OAuth flow in Step 1) above, you must provide the exact redirect uri that was set in the Ease Application; note that it does not need to be URL encoded. You must also include the full list of Scopes that were set in the Ease Application. <em>These data points are used to validate your request to begin an OAuth flow, and are typically the main source of problems when beginning development.</em>\n\nVerify that your redirect uri is accessible from outside your firewall.\n\nAlso, when receiving the authorization code response, verify that the returned state matches the state value you provided. This gives you confidence that your session was not hijacked and you can trust the returned data.\n\nIf an invalid token is provided for an API request, an error response will be returned: 401 Unauthorized.\n\nIf you attempt to access an endpoint for which you have no assigned Scope, a different error response will be returned: 403 Forbidden.\n\nFinally, for more info, go to the source of truth: <a target=\"_blank\" href='https://tools.ietf.org/html/rfc6749'>the OAuth 2.0 RFC</a>.\n\n<b>GLOSSARY</b>\n\n  <b>Bearer Token</b> - provides both Authentication and Authorization for API access, must be included in each API request as an Authorization header.<br/>  <b>Ease Application</b> - once you've logged into the Ease Website (see below), this holds data relevant to creating an OAuth Bearer Token.<br/>  <b>Ease Token</b> - once you've logged into the Ease Website (see below), this may be created from your Ease Application (see above). An Ease Token never expires and is used as a Bearer Token in API Requests.<br/>  <b>Ease Website</b> - the website where you login to view your Ease data.<br/>  <b>External Application</b> - an application an API client may build that uses Ease data accessible via Ease API.<br/>  <b>Redirect URI</b> - part of the OAuth flow, this URI receives the Authorization Code that is then used to request a bearer token.<br/>  <b>Refresh Token</b> - returned with the bearer token as the last step in the Oauth flow, it is used to request a new bearer token when the current one expires.<br/>  <b>Scope</b> - provides access to a subset of Ease data, scopes are assigned to both an Ease Applications and an Ease Token.\n\n# Webhooks\nWebhooks allow you to be notified when certain data has changed. Each Webhook is associated with a Scope and a set of data over which it monitors. You subscribe to a Webhook from within Ease, under Profile->Settings->Webhooks. Since we support multiple versions of the API, you choose which version you are using in your application when you subscribe to a webhook.\n\nNOTE: The webhook payload includes simply one or more URI's to the appropriate API endpoint (see the example payload near the end of this section).\n\nThe following Webhooks are supported, organized by Scope. The webhook name is presented, and then what causes it to fire.\n\n    export_company_info:\n\n        Employee Update Webhook: employee data changes\n\n        Company Update Webhook: company data changes\n\n        Company Demographics Update Webhook: company data changes (including employee)\n\n\n    export_enrollment:\n\n        Enrollment Submission Webhook: enrollment is submitted\n\n        HSA Election Webhook: any HSA Election\n\n        Partner Approve Webhook: partner is approved\n\n        Employee Enrollments Update Webhook: any employee enrollment change\n\n\n    export_payroll:\n\n        Payroll Update Webhook: any payroll update\n\n        Employee Create Webhook: employee created\n\n        Payroll Employee Import Webhook: employee imported\n\n\n<b>NOTES ON IMPLEMENTATION</b>\n\nWebhooks only apply if you already have API access. Please first make sure you can reliably make API calls before working with Webhooks.\n\nTypically, external clients first retrieve all data of interest, and then rely on their webhook subscriptions to notify them of changed data. This saves the trouble of periodically polling Ease for data changes.\n\nAlso, since multiple changes to the same set of data (for example, a specific employee) causes multiple instances of a webhook to fire, it makes sense to de-duplicate the returned URI's before calling them to retrieve the updated data. The above recommendations more efficiently use resources on both your side and ours.\n\nWebhook attempts will be made 4 times for up to 1 hour. The status of the latest attempt can be found in the Webhooks section in the UI.\n\n<b>EXAMPLE</b>\n\nThis example walks you through the process of subscribing to a webhook and receiving a webhook payload.\n\nIt is assumed that you already have API access, and so you already have an Application created with one or more Scopes.\n\nAs mentioned above, the Scopes determine which webhooks you can subscribe to. This makes sense since each Scope provides access to a subset of data in Ease. We created webhooks, then, to alert you to changes within these subsets.\n\nTo subscribe to one or more webhooks, login to Ease and go to the Partner/Broker/Company/Application where you would like the webhook subscription. Note that if you subscribe at the Partner or Broker level, you will be notified of changes to any managed company as well.\n\nClick on Settings, and then Webhooks.\n\nClick on 'Add Webhook', and a form will pop-up. Click on 'Name' to select the webhook to subscribe to. Again, you will only see those webhooks that correspond to the Scopes assigned to your Application.\n\nNext, select the API Version that you are otherwise using to make the API calls. It is important to select the correct version since the URI in the payload will differ depending on the version of the API you are using.\n\nFinally, enter the Callback URL of the server where you would like the payload sent. Again, this payload will contain simply the URI(s) for you to then use to retrieve the changed data.You are now subscribed to a webhook!\n\nIt is now up to the server listening at your registered Callback URL to process each payload that is received when a change occurs. Each payload will look something like this one below:\n\n    {\n\n      \"id\": \"5f0e583f-f2b4-4b3c-9aef-48923fe73650\", // EC internal ID\n\n      \"subscription_id\": \"2566ba4a-1bae-635e-9351-ee21dd213b27\", // Your subscription ID\n\n      \"timestamp\" = \"2020-06-11T18:17:16Z\",  // ISO8601 timestamp\n\n      \"fields\" = \"[\"deletedate\", \"firstname\"]\", // fields that were updated\n\n      \"resources\" : [  // resources that were updated\n\n        \"/v1/payroll/employees?company_id=xxx&employee_id=yyy&paygroup_id=zzz\",\n\n        \"/v1/payroll/employees?company_id=xxx&employee_id=yyy&paygroup_id=zzz\",\n\n        \"/v1/payroll/companies?company_id=xxx&paygroup_id=0\",\n\n      ]\n\n    }\n\nNotice that, as above, a payload may include multiple URI's to process; or, you may receive multiple payloads with the exact same URI. Hence, we strongly recommend that you cache these URI's on your side, de-duplicate, and then process them once every hour, or so.\n\n\n<b>NOTES ON THE PAYLOAD</b>\n\nFor security purposes, the webhook payload itself specifically does not contain any meaningful event data.\n\nThis means that every webhook payload must contain resources that surface the actual data affected by the event this webhook is capturing.\n\nIn essence, keeping the data out of the payload has the following benefits:\n\n + Webhook payloads can be smaller and thus more scalable for hundreds to thousands of emitted webhooks. This decouples the webhook scalability with the API scalability.\n\n + The data itself is protected against leaks from misconfigurations or insecure/deprecated callback urls.\n\n + The authentication/authorization process is simplified, as there are no special considerations needed for webhooks separate from APIs.\n\n<b>NOTES ON NOTIFICATIONS AND MONITORING</b>\n\nWebhooks are sent in batches, approximately once every minute.\n\nIndividual webhook statuses are surfaced in the application owner's Profile->Settings->Webhooks page.\n\n# Pagination\nSome endpoints may return many rows of data. To help manage this data, we may provide cursor-based pagination for an endpoint. The default page size may vary, check each endpoint.\n\n# Versioning\nWe use major versions, such as 'v1' or 'v2'. You will see that the version is specified as the first part of the route.\n\nWe currently have two versions of the API. Each can be accessed via the following URLs: \n\n <a href='/api/docs/v1'>Version 1 (V1)</a> \n\n <a href='/api/docs/v2'>Version 2 (V2)</a>\n\n# Plan Types\nSupported Plan Types:\n\n&emsp;Benefit Allowance\n\n&emsp;Wellness\n\n&emsp;EAP\n\n&emsp;Medical\n\n&emsp;Medical Underwriting\n\n&emsp;Medical Supplemental\n\n&emsp;Medical Buy-Up\n\n&emsp;Gap Medical\n\n&emsp;Medical Limited\n\n&emsp;Dental\n\n&emsp;Voluntary Dental\n\n&emsp;Pediatric Dental\n\n&emsp;Vision\n\n&emsp;Voluntary Vision\n\n&emsp;Discount Program\n\n&emsp;Health Reimbursement Account\n\n&emsp;Individual Coverage Health Reimbursement Account\n\n&emsp;Health Savings Account\n\n&emsp;VEBA\n\n&emsp;Critical Illness\n\n&emsp;Prescription Drug\n\n&emsp;Cancer\n\n&emsp;Cancer Expense\n\n&emsp;Intensive Care\n\n&emsp;Hospital Confinement\n\n&emsp;Accident\n\n&emsp;Chiropractic\n\n&emsp;Acupuncture\n\n&emsp;Simple IRA\n\n&emsp;Short Term Disability\n\n&emsp;Short Term Disability Buy-Up\n\n&emsp;Long Term Disability\n\n&emsp;Long Term Disability Buy-Up\n\n&emsp;Paid Family Leave\n\n&emsp;Life/AD&D\n\n&emsp;Life\n\n&emsp;AD&D\n\n&emsp;Supplemental Life\n\n&emsp;Hearing\n\n&emsp;Section 125\n\n&emsp;FSA Health Care\n\n&emsp;FSA Dependent Care\n\n&emsp;Transit\n\n&emsp;Parking\n\n&emsp;Premium Reimbursement Account\n\n&emsp;Health Concierge\n\n&emsp;Advocacy\n\n&emsp;Voluntary Short Term Disability\n\n&emsp;Voluntary Long Term Disability\n\n&emsp;Voluntary Life/AD&D\n\n&emsp;Voluntary Life\n\n&emsp;Voluntary AD&D\n\n&emsp;Voluntary Critical Illness\n\n&emsp;Voluntary Accident\n\n&emsp;Voluntary Cancer\n\n&emsp;Voluntary Hospital Confinement\n\n&emsp;Voluntary Term Life\n\n&emsp;Universal Life\n\n&emsp;Voluntary Long Term Care\n\n&emsp;Long Term Care\n\n&emsp;Prepaid Legal\n\n&emsp;Legal\n\n&emsp;Identity Theft\n\n&emsp;401k\n\n&emsp;Roth 401k\n\n&emsp;Retirement\n\n&emsp;Cost\n\n&emsp;Fitness\n\n&emsp;Phone\n\n&emsp;Benefit 1\n\n&emsp;Benefit 2\n\n&emsp;529\n\n&emsp;Vacation Buy Back\n\n&emsp;Telemedicine\n\n&emsp;Teladoc\n\n&emsp;Identity Theft Assist\n\n&emsp;Whole Life\n\n&emsp;Term Life\n\n&emsp;Specified Disease\n\n&emsp;Pet\n\n&emsp;403b\n\n&emsp;Travel Assistance\n\n&emsp;Perks\n\n&emsp;Financial Well-Being",
    "version": "v2",
    "x-logo": {
      "url": "data:image/png;base64,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",
      "altText": "Ease"
    }
  },
  "paths": {
    "/v{version}/aca/hours": {
      "post": {
        "tags": [
          "Aca"
        ],
        "summary": "ACA hours",
        "description": "Creates records for imported hours in the db.<p>Scopes: export_payroll</p>",
        "operationId": "Aca_CreateHoursTracked",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/dtos.HoursTracked"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/connect/auth": {
      "get": {
        "tags": [
          "Authentication Token"
        ],
        "summary": "OAuth authorization",
        "description": "Redirect your external application to this endpoint, providing the required query parameters.\r\nThis kicks-off the OAuth flow for your external application.\r\n<br /><br />\r\nPlease see the <a href=\"/api/docs/v2#section/Authorization\">AUTHORIZATION</a> section for a full explanation of the OAuth flow.",
        "operationId": "EaseConnect_GetAuthCode",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "client_id",
            "description": "Your Ease Application Id (that is, the Ease Application where, for example, the redirect uri and scopes are specified).",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "scope",
            "description": "The scopes your application requires: comma-separated list with no spaces. This must exactly match the scopes set in the Ease Application.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "redirect_uri",
            "description": "The redirect uri registered to your Application. This must exactly match the redirect uri set in the Ease Application.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "state",
            "description": "A non-guessable, unique state. This should be different for each request.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Mvc.IActionResult"
            }
          },
          "302": {
            "description": "Redirect"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v{version}/connect/token": {
      "post": {
        "tags": [
          "Authentication Token"
        ],
        "summary": "access token",
        "description": "Exchanges an auth_code for an access_token and refresh_token.\r\nAn access_token is sent with every API call when using OAuth.\r\nWhen an access_token expires, the refresh_token is used to obtain a new access_token.\r\nSo, securely store these tokens for later use.\r\n<br /><br />\r\nThe access_token should be included in the Authorization header as follows:\r\n**Bearer {access_token}**\r\n<br /><br />\r\nPlease see the <a href=\"/api/docs/v2#section/Authorization\">AUTHORIZATION</a> section for a full explanation of the OAuth flow.\r\n<br /><br />\r\nAlso accepts `application/x-www-form-urlencoded'.",
        "operationId": "EaseConnect_GetAccessTokenPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "schema": {
              "$ref": "#/definitions/controllers.EaseConnectController.AccessTokenRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/controllers.EaseConnectController.CodeAccessTokenResponse"
            }
          },
          "400": {
            "description": "BadRequest"
          }
        }
      }
    },
    "/v{version}/brokers/{id}": {
      "get": {
        "tags": [
          "Broker"
        ],
        "summary": "broker",
        "description": "Returns the broker<p>Scopes: export_company_info</p>",
        "operationId": "Broker_GetBroker",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The broker company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Broker"
            }
          }
        }
      }
    },
    "/v{version}/brokers/{id}/agents": {
      "post": {
        "tags": [
          "Broker"
        ],
        "summary": "broker agent",
        "description": "<p>Scopes: update_agent</p>",
        "operationId": "Broker_CreateBrokerAgent",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The broker company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "schema": {
              "$ref": "#/definitions/dtos.BrokerAgentEditable"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.BrokerAgent"
            }
          }
        }
      }
    },
    "/v{version}/carriers": {
      "get": {
        "tags": [
          "Carrier"
        ],
        "summary": "carriers",
        "description": "Carriers for a company.<p>Scopes: export_enrollment</p>",
        "operationId": "Carrier_GetCarriers",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Carrier]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/note": {
      "post": {
        "tags": [
          "Company"
        ],
        "summary": "company note",
        "description": "Add a company note.<p>Scopes: update_company</p>",
        "operationId": "Company_AddCompanyNote",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.NoteEditable"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/companies/{id}": {
      "patch": {
        "tags": [
          "Company"
        ],
        "summary": "company",
        "description": "Updates a company.<p>Scopes: update_company</p>",
        "operationId": "Company_UpdateCompany",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.CompanyEditable"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "company",
        "description": "Returns a company.<p>Scopes: export_company_info</p>",
        "operationId": "Company_GetCompany",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dtos.Company"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "410": {
            "description": "Gone"
          }
        }
      }
    },
    "/v{version}/companies": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "companies",
        "description": "Returns the list of companies you have access to.<p>Scopes: export_company_info</p>",
        "operationId": "Company_GetCompanies",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "start_id",
            "description": "The id to start fetching from. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "name",
            "description": "Limits the companies returned to companies that contain (partial match) the provided name, case insensitive, if provided. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "Limits the number of records returned. Optional. The default is 50.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[Company]"
            }
          }
        }
      },
      "post": {
        "tags": [
          "Company"
        ],
        "summary": "company",
        "description": "Returns the id of the company created.<p>Scopes: import_plan, update_company</p>",
        "operationId": "Company_CreateCompany",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "new_companies_only",
            "type": "boolean",
            "default": false
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The company info.",
            "schema": {
              "$ref": "#/definitions/dtos.PlanCompany"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/controllers.CompanyController.Model"
            }
          }
        }
      }
    },
    "/v{version}/companies/{broker_id}/companies": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "broker companies",
        "description": "Returns a list of companies this broker has access to.<p>Scopes: export_company_info</p>",
        "operationId": "Company_GetCompanies",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "broker_id",
            "description": "The broker company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Company]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/custom-fields": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "custom field",
        "description": "Retrieves all of the custom fields for a company.<p>Scopes: export_company_info</p>",
        "operationId": "Company_GetCustomFields",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[CustomField]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/open-enrollment-summary": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "open enrollment summary",
        "description": "Retrieves information related to the company's open enrollment<p>Scopes: export_company_info</p>",
        "operationId": "Company_GetOpenEnrollmentSummary",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.CompanyOpenEnrollmentSummary"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/products/partner/{partner_id}": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "partner product",
        "description": "<p>Scopes: export_company_info</p>",
        "operationId": "Company_GetPartner",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "partner_id",
            "description": "The id of the partner.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/controllers.CompanyController.PartnerProduct"
            }
          }
        }
      },
      "put": {
        "tags": [
          "Company"
        ],
        "summary": "partner product",
        "description": "<p>Scopes: update_company_products</p>",
        "operationId": "Company_UpdatePartner",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "the id of the company",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "partner_id",
            "description": "the id of the partner",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "schema": {
              "$ref": "#/definitions/controllers.CompanyController.PartnerProduct"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Indicates that the partner and product was updated successfully."
          }
        }
      }
    },
    "/v{version}/companies/{id}/wages": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "wages",
        "description": "Returns a list of paginated employee wages for the company. Historical results limited to 1 year.<p>Scopes: export_payroll</p>",
        "operationId": "Company_GetWages",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pay_group_id",
            "description": "Filter by the pay group id. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_id",
            "description": "Filter by the employee id. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start fetching from. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "Limits the number of employee wages returned. Optional. The default is 50.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[EmployeeWage]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/direct-deposits": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "employee direct deposits",
        "description": "returns list of direct deposit accounts of the employees of the company.<p>Scopes: export_payroll</p>",
        "operationId": "Company_GetEmployeeDirectDeposits",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pay_group_id",
            "description": "The id of the pay group. Optional. Defaults to all pay groups.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_id",
            "description": "The id of the employee to return accounts for. Optional. Default to all employees",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start with. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "Limits the number of employees returned. Optional. The default is 50 and the maximum value is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[EmployeeDirectDeposit]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/deductions": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "employee deductions",
        "description": "Returns a list of paginated employee deductions for the company.<p>Scopes: export_payroll</p>",
        "operationId": "Company_GetEmployeeDeductions",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pay_group_id",
            "description": "The pay group to filter by. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_id",
            "description": "Filters deductions to a specific employee. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start with. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "Limits the number of employees returned. Optional. The default is 50 and the maximum value is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[EmployeeDeduction]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/w4s": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "employee W4s",
        "description": "Returns a list of paginated employee W4s for the company.<p>Scopes: export_payroll</p>",
        "operationId": "Company_GetEmployeeW4s",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pay_group_id",
            "description": "The pay group to filter by. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_id",
            "description": "Filters W4s to a specific employee. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start with. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "Limits the number of employees returned. Optional. The default is 50 and the maximum value is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[CompanyEmployeeW4]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{id}/i9s": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "employee I9s",
        "description": "Returns a list of paginated employee I9s for the company.<p>Scopes: export_payroll</p>",
        "operationId": "Company_GetEmployeeI9s",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pay_group_id",
            "description": "The pay group to filter by. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_id",
            "description": "Filters I9s to a specific employee. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start with. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "Limits the number of employees returned. Optional. The default is 50 and the maximum value is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[EmployeeI9]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/timeoff/requests": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "time off taken",
        "description": "Returns a list of time off entries for a company, that fall on a specific date.<p>Scopes: export_hris, export_hris_timeoff</p>",
        "operationId": "Company_GetTimeOffRequests",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "status",
            "description": "The status of the request. Only supports \"Approved\" at the moment.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "start_date",
            "description": "The start date.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "end_date",
            "description": "The end date.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "paid_status",
            "description": "The paid status to filter the requests on.",
            "type": "string",
            "default": "Any",
            "enum": [
              "Any",
              "Paid",
              "Unpaid"
            ]
          },
          {
            "in": "query",
            "name": "pay_group_id",
            "description": "Optional. The pay group to filter the employees on.",
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[TimeOffTaken]"
            }
          }
        }
      }
    },
    "/v{version}/contacts/{id}": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "broker agent",
        "description": "Returns a broker agent.<p>Scopes: export_company_info</p>",
        "operationId": "Contact_GetAgent",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The broker agent id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Contact"
            }
          }
        }
      }
    },
    "/v{version}/companies/{broker_id}/contacts": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "contacts",
        "description": "Returns broker contacts.\r\nContacts include the Principal Agent, regular agents, and all other employees.<p>Scopes: export_company_info</p>",
        "operationId": "Contact_GetContacts",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "broker_id",
            "description": "The broker company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Contact]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/departments": {
      "get": {
        "tags": [
          "Department"
        ],
        "summary": "departments",
        "description": "Returns all departments for a company.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Department_GetDepartments",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Department]"
            }
          }
        }
      }
    },
    "/v{version}/departments/{id}": {
      "get": {
        "tags": [
          "Department"
        ],
        "summary": "department",
        "description": "Returns a department for a department id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Department_GetDepartment",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Department"
            }
          }
        }
      }
    },
    "/v{version}/employees/{employee_id}/dependents": {
      "get": {
        "tags": [
          "Dependent"
        ],
        "summary": "dependents",
        "description": "Returns all dependents for an employee.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Dependent_GetDependents",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "description": "The employee id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Dependent]"
            }
          }
        }
      }
    },
    "/v{version}/dependents/{id}": {
      "get": {
        "tags": [
          "Dependent"
        ],
        "summary": "dependent",
        "description": "Returns dependent for a dependent id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Dependent_GetLocation",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Dependent"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/divisions": {
      "get": {
        "tags": [
          "Division"
        ],
        "summary": "divisions",
        "description": "Returns all divisions for a company.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Division_GetDivisions",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Division]"
            }
          }
        }
      }
    },
    "/v{version}/divisions/{id}": {
      "get": {
        "tags": [
          "Division"
        ],
        "summary": "division",
        "description": "Returns division for a division id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Division_GetDivision",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Division"
            }
          }
        }
      }
    },
    "/v{version}/documents/{id}": {
      "get": {
        "tags": [
          "Document"
        ],
        "summary": "document",
        "description": "This endpoint returns a 307 which will point to the document url.<p>Scopes: export_document</p>",
        "operationId": "Document_RedirectToDocument",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "307": {
            "description": "Temporary Redirect"
          }
        }
      }
    },
    "/v{version}/eligibilities/{id}": {
      "get": {
        "tags": [
          "Eligibility"
        ],
        "summary": "eligibility",
        "description": "Returns an eligibility for an eligibility id.<p>Scopes: import_plan, export_company_info</p>",
        "operationId": "Eligibility_GetEligibility",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Eligibility"
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Eligibility"
        ],
        "summary": "eligibility",
        "description": "Partially updates an eligibility.<p>Scopes: import_plan</p>",
        "operationId": "Eligibility_UpdateEligibility",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.EligibilityEditable"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/eligibilities/{id}/rates": {
      "patch": {
        "tags": [
          "Eligibility"
        ],
        "summary": "eligibility rates",
        "description": "Partially updates eligibility rates.<p>Scopes: import_plan</p>",
        "operationId": "Eligibility_UpdateEligibilityRates",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.EligibilityRates"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/eligibilities/{id}/contributions": {
      "patch": {
        "tags": [
          "Eligibility"
        ],
        "summary": "eligibility contributions",
        "description": "Partially updates eligibility contributions.<p>Scopes: import_plan</p>",
        "operationId": "Eligibility_UpdateEligibilityContributions",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.EligibilityContributions"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/employees/{employee_id}/emergency-contacts": {
      "get": {
        "tags": [
          "Emergency-Contact"
        ],
        "summary": "emergency contacts",
        "description": "Returns all emergency contacts for an employee.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "EmergencyContact_GetEmergencyContacts",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "description": "The employee id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[EmergencyContact]"
            }
          }
        }
      }
    },
    "/v{version}/emergency-contacts/{id}": {
      "get": {
        "tags": [
          "Emergency-Contact"
        ],
        "summary": "emergency contact",
        "description": "Returns emergency contact for an emergency contact id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "EmergencyContact_GetEmergencyContact",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.EmergencyContact"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/employees": {
      "post": {
        "tags": [
          "Employee"
        ],
        "summary": "employee",
        "description": "Create a new employee.<p>Scopes: update_employee</p>",
        "operationId": "Employee_CreateEmployee",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "Company Id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Employee demographic and employment data.",
            "schema": {
              "$ref": "#/definitions/dtos.EmployeeEditable"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/controllers.EmployeeResult"
            }
          }
        }
      },
      "get": {
        "tags": [
          "Employee"
        ],
        "summary": "employees",
        "description": "Returns a list of paginated employees for the company.<p>Scopes: export_company_info</p>",
        "operationId": "Employee_GetCompanyEmployees",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "start_id",
            "description": "Optional.  The object id to begin with, inclusive.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "The maximum number of records to return, the default is 50 and the maximum is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[Employee]"
            }
          }
        }
      }
    },
    "/v{version}/employees/{id}": {
      "get": {
        "tags": [
          "Employee"
        ],
        "summary": "employee",
        "description": "<p>Scopes: export_company_info</p>",
        "operationId": "Employee_GetEmployee",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dtos.Employee"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "410": {
            "description": "Gone"
          }
        }
      },
      "patch": {
        "tags": [
          "Employee"
        ],
        "summary": "employee",
        "description": "Partially updates an employee.<p>Scopes: update_employee</p>",
        "operationId": "Employee_PatchEmployee",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "Id of an employee to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Employee info to update.",
            "schema": {
              "$ref": "#/definitions/dtos.EmployeePatch"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/employees/{employee_id}/forms/{id}": {
      "get": {
        "tags": [
          "Employee"
        ],
        "summary": "forms",
        "description": "This endpoint returns a 307 which will point to the form url.<p>Scopes: export_enrollment</p>",
        "operationId": "Employee_RedirectToForm",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "description": "Employee Id to get forms.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "id",
            "description": "Id of the forms",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "307": {
            "description": "Temporary Redirect"
          }
        }
      }
    },
    "/v{version}/employees/{employee_id}": {
      "delete": {
        "tags": [
          "Employee"
        ],
        "summary": "employee",
        "description": "Delete an existing employee.<p>Scopes: update_employee</p>",
        "operationId": "Employee_DeleteEmployee",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "description": "Id of employee to delete.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/employees/{employee_id}/wages": {
      "post": {
        "tags": [
          "Employee"
        ],
        "summary": "wages",
        "description": "This endpoint can be used to create or update a wage for an employee.  Start dates and categories must be unique per employee.<p>Scopes: update_employee</p>",
        "operationId": "Employee_AddOrUpdateEmployeeWage",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "description": "The employee id that the wage is for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.EmployeeEditableWage"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/enrollments/members": {
      "get": {
        "tags": [
          "Enrollment"
        ],
        "summary": "enrollment members",
        "description": "Enrollment members/demographics for a line of coverage.<p>Scopes: export_enrollment</p>",
        "operationId": "Enrollment_GetMembers",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "Id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "plan_type",
            "description": "The plan type. Please see <a href=\"/api/docs/v2#section/Plan-Types\">Plan Types</a> for a complete list of supported values.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "date",
            "description": "The from date of the enrollments to include members for. Optional. Will include all if omitted.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "start_id",
            "description": "The id to start fetching from. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "Limits the number of records returned. Optional. The default is 50 and the maximum value is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[EnrollmentMember]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/enrollments/current": {
      "get": {
        "tags": [
          "Enrollment"
        ],
        "summary": "current enrollments",
        "description": "All current and future enrollments.<p>Scopes: export_enrollment</p>",
        "operationId": "Enrollment_GetCurrentAndFutureEnrollments",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "query",
            "name": "costs_deduction_period",
            "description": "The deduction period used for cost calculations.",
            "type": "string",
            "default": "Default",
            "enum": [
              "Default",
              "Monthly",
              "Weekly",
              "PayCycle"
            ]
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[Enrollment]"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/enrollments": {
      "get": {
        "tags": [
          "Enrollment"
        ],
        "summary": "employee enrollments",
        "description": "Enrollments for a type of plan.<p>Scopes: export_enrollment</p>",
        "operationId": "Enrollment_GetEnrollments",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "Id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "plan_type",
            "description": "The plan type. Please see <a href=\"/api/docs/v2#section/Plan-Types\">Plan Types</a> for a complete list of supported values.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from_date",
            "description": "The date to begin from, inclusive.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "to_date",
            "description": "The date to end at, inclusive. The maximum time period allowed is 2 years.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start with. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "Limits the number of employees returned. Optional. The default is 50 and the maximum value is 250.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "query",
            "name": "costs_deduction_period",
            "description": "The deduction period used for cost calculations.",
            "type": "string",
            "default": "Default",
            "enum": [
              "Default",
              "Monthly",
              "Weekly",
              "PayCycle"
            ]
          },
          {
            "in": "query",
            "name": "include_voided",
            "description": "Indicates whether or not to include voided enrollments. Optional. The default is false.",
            "type": "boolean",
            "default": false
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[Enrollment]"
            }
          }
        }
      }
    },
    "/v{version}/enrollment-submissions/{id}": {
      "get": {
        "tags": [
          "Enrollment-Submission"
        ],
        "summary": "enrollment submission",
        "description": "Returns the enrollment submission details<p>Scopes: export_enrollment</p>",
        "operationId": "EnrollmentSubmissions_GetEnrollmentSubmission",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The enrollment submission id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.EnrollmentSubmission"
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Enrollment-Submission"
        ],
        "summary": "enrollment eubmission",
        "description": "Updates the enrollment submission details<p>Scopes: update_company</p>",
        "operationId": "EnrollmentSubmissions_UpdateEnrollmentSubmission",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The enrollment submission id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.EnrollmentSubmissionEditable"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/companies/{id}/enrollment-forms": {
      "post": {
        "tags": [
          "Form"
        ],
        "summary": "generate forms",
        "description": "Queues a form generation request and pings the caller back with a webhook once the generation is complete.<p>Scopes: employee_navigator</p>",
        "operationId": "Form_CreateForms",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.FormGenerationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/job-classes": {
      "get": {
        "tags": [
          "Job-Class"
        ],
        "summary": "job classes",
        "description": "Returns all job classes for a company.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "JobClass_GetJobClasses",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[JobClass]"
            }
          }
        }
      }
    },
    "/v{version}/job-classes/{id}": {
      "get": {
        "tags": [
          "Job-Class"
        ],
        "summary": "job class",
        "description": "Returns job class for a job class id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "JobClass_GetJobClass",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.JobClass"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/job-titles": {
      "get": {
        "tags": [
          "Job-Title"
        ],
        "summary": "all job titles",
        "description": "Returns all job titles for a company.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "JobTitle_GetJobTitles",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[JobTitle]"
            }
          }
        }
      }
    },
    "/v{version}/job-titles/{id}": {
      "get": {
        "tags": [
          "Job-Title"
        ],
        "summary": "job title",
        "description": "Returns job title for a job title id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "JobTitle_GetJobTitle",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.JobTitle"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/locations": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "locations",
        "description": "Returns all locations for a company.<p>Scopes: import_plan, export_payroll, export_company_info</p>",
        "operationId": "Location_GetCompanyLocations",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Location]"
            }
          }
        }
      },
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "locations",
        "description": "Returns the ids of the locations created.<p>Scopes: import_plan, update_company</p>",
        "operationId": "Location_CreateLocations",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The locations to create.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/dtos.PlanLocation"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[MappedId]"
            }
          }
        }
      }
    },
    "/v{version}/locations/{id}": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "location",
        "description": "Returns location for a location id.<p>Scopes: import_plan, export_payroll, export_company_info</p>",
        "operationId": "Location_GetLocation",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Location"
            }
          }
        }
      }
    },
    "/v{version}/manage-changes-summary": {
      "get": {
        "tags": [
          "Manage-Changes"
        ],
        "summary": "manage changes summary",
        "description": "<p>Scopes: export_enrollment</p>",
        "operationId": "ManageChanges_GetManageChangesSummary",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "agency_id",
            "description": "The broker company id",
            "type": "string"
          },
          {
            "in": "query",
            "name": "company_id",
            "description": "The client company id",
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The date and time to begin from, inclusive. Default is 90 in the past. Time is truncated to an hour.",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The date and time to end at, inclusive. The maximum time period allowed is 90 days. Time is truncated to an hour.",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "employee_start_id",
            "description": "The employee id to start with.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_limit",
            "description": "",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "query",
            "name": "query_mode",
            "description": "Works in conjunction with \"from\" and \"to\" and determines how data is searched.\r\n<br />\r\n\"Actual\" (default) will search based on when manage change record has been created. This mode is eventually consistent\r\nand can take over 24h for data to show up in extreme cases.\r\n<br />\r\n\"Continuous\" mode searches based on when manage change record became available for search.\r\n<br />\r\nWhen in \"Continuous\" mode it is recommended to use few minutes of delay when querying for a previous hour, e.g.,\r\nif you want to query data from 2000-01-01 04:00 AM to 2000-01-01 07:00 AM, execute the query\r\nno earlier than 2000-01-01 07:05 AM.",
            "type": "string",
            "enum": [
              "Actual",
              "Continuous"
            ]
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[ManageChangeSummary]"
            }
          }
        }
      }
    },
    "/v{version}/manage-changes-detail": {
      "get": {
        "tags": [
          "Manage-Changes"
        ],
        "summary": "manage changes detail",
        "description": "<p>Scopes: export_enrollment</p>",
        "operationId": "ManageChanges_GetManageChangesDetail",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "description": "The employee id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The date and time to begin from, inclusive.",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The date and time to begin from, inclusive. The maximum time period allowed is 3 months.",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "date_lookup_field",
            "description": "The date field to perform the lookup on for the from and to values.",
            "type": "string",
            "default": "LastModifiedOn",
            "enum": [
              "LastModifiedOn",
              "LastSummarizedOn"
            ]
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.ManageChangeDetail"
            }
          }
        }
      }
    },
    "/v{version}/process-changes/employees/{id}": {
      "put": {
        "tags": [
          "Manage-Changes"
        ],
        "summary": "process changes",
        "description": "Processes a list of process change ids.<p>Scopes: update_benefit</p>",
        "operationId": "ManageChanges_ProcessChanges",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The employee id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.EmployeeChanges"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/partners/connections": {
      "get": {
        "tags": [
          "Partner"
        ],
        "summary": "partner connection",
        "description": "<p>Scopes: export_company_info, export_enrollment</p>",
        "operationId": "Partner_GetPartnerRelationship",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "company_id",
            "description": "The company id to check the connection status for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[PartnerConnection]"
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Partner"
        ],
        "summary": "partner connection",
        "description": "<p>Scopes: update_company_products</p>",
        "operationId": "Partner_SetPartnerRelationship",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "company_id",
            "description": "The company id to update the connection status for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.PartnerConnectionEditable"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/v{version}/partners/companies/{id}/partner": {
      "put": {
        "tags": [
          "Partner"
        ],
        "summary": "partner relationship",
        "description": "<p>Scopes: update_company_products</p>",
        "operationId": "Partner_AddPartner",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/controllers.PartnerController.AddPartnerRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Indicates that the product was added successfully."
          }
        }
      },
      "delete": {
        "tags": [
          "Partner"
        ],
        "summary": "partner relationship",
        "description": "<p>Scopes: update_company_products</p>",
        "operationId": "Partner_RemovePartner",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "204": {
            "description": "Indicates that the product was removed successfully."
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/pay-groups": {
      "get": {
        "tags": [
          "Pay-Group"
        ],
        "summary": "pay groups",
        "description": "Returns all pay groups for a company.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "PayGroup_GetPayGroups",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "The id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[PayGroup]"
            }
          }
        }
      }
    },
    "/v{version}/plans": {
      "post": {
        "tags": [
          "Plan"
        ],
        "summary": "plans",
        "description": "Returns the ids of the plans created.\r\nThis endpoint will create new plans for the company specified in the request.  You **cannot update an existing plan** using this endpoint.  The plan must be deleted before you are able to post the same plan again.<p>Scopes: import_plan</p>",
        "operationId": "Plan_CreatePlans",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "schema": {
              "$ref": "#/definitions/dtos.Plans"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dtos.PlanImport.PlansResult"
            }
          },
          "409": {
            "description": "Conflict"
          }
        }
      }
    },
    "/v{version}/plans/{id}": {
      "patch": {
        "tags": [
          "Plan"
        ],
        "summary": "plans",
        "description": "Partially updates a plan. Omitted values will be ignored.<p>Scopes: import_plan</p>",
        "operationId": "Plan_UpdatePlan",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.PlanEditable"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "get": {
        "tags": [
          "Plan"
        ],
        "summary": "plan",
        "description": "Returns a plan.<p>Scopes: export_company_info</p>",
        "operationId": "Plan_GetPlan",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the plan.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dtos.Plan"
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/v{version}/plans/{id}/renew": {
      "post": {
        "tags": [
          "Plan"
        ],
        "summary": "plan renewal",
        "description": "Duplicates and pushes enrollments for an existing plan onto a new one using the original plan as a template.<p>Scopes: import_plan</p>",
        "operationId": "Plan_RenewPlan",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.PlanRenewal"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Plan"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/plans": {
      "get": {
        "tags": [
          "Plan"
        ],
        "summary": "company plans",
        "description": "Returns the list of Plans for the specified company.<p>Scopes: export_company_info</p>",
        "operationId": "Plan_GetPlans",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "Id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Plan]"
            }
          }
        }
      },
      "post": {
        "tags": [
          "Plan"
        ],
        "summary": "company plan",
        "description": "Create a new plan for a company.<p>Scopes: import_plan</p>",
        "operationId": "Plan_CreatePlan",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "Id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.PlanImport"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.PlanImport.PlansResult"
            }
          }
        }
      }
    },
    "/v{version}/companies/{company_id}/coverage-lines": {
      "get": {
        "tags": [
          "Plan"
        ],
        "summary": "company coverage lines",
        "description": "Returns a list of coverage lines for the company.<p>Scopes: export_payroll</p>",
        "operationId": "Plan_GetCompanyCoverageLines",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "description": "Id of the company.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "coverage_line_id",
            "description": "\"Filters by coverage line id. Optional.",
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[CompanyCoverageLine]"
            }
          }
        }
      }
    },
    "/v{version}/plans/{plan_id}/beneficiaries": {
      "get": {
        "tags": [
          "Plan"
        ],
        "summary": "beneficiaries",
        "description": "Returns all beneficiaries for a given plan.<p>Scopes: export_enrollment</p>",
        "operationId": "Plan_GetBeneficiaries",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "plan_id",
            "description": "The plan that the beneficiaries are on.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "employee_id",
            "description": "The employee to filter by. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "type",
            "description": "The beneficiary type to filter by (must be either 'Primary', 'Secondary', or 'Tertiary'). Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "start_id",
            "description": "The id to start fetching from. Optional.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "Limits the number of records returned. Optional. The default is 50.",
            "type": "integer",
            "format": "int32",
            "default": 50
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.PagedWrappedArray[EnrollmentBeneficiary]"
            }
          }
        }
      }
    },
    "/v{version}/reports": {
      "post": {
        "tags": [
          "Report"
        ],
        "summary": "create report",
        "description": "Queues a report generation and pings the caller back with a webhook once the report is complete.<p>Scopes: export_enrollment</p>",
        "operationId": "Report_CreateReport",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/dtos.Report"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v{version}/sso/login/{serviceProviderId}": {
      "get": {
        "tags": [
          "SAML-SSO-IDP"
        ],
        "summary": "This is the GET SAML2 endpoint for SSO integrations using Ease as the identity provider.",
        "operationId": "SamlSsoIdp_SamlLogin",
        "parameters": [
          {
            "in": "path",
            "name": "serviceProviderId",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "samlRequest",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "sigAlg",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "signature",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "relayState",
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      },
      "post": {
        "tags": [
          "SAML-SSO-IDP"
        ],
        "summary": "This is the POST SAML2 endpoint for SSO integrations using Ease as the identity provider.",
        "operationId": "SamlSsoIdp_SamlLogin",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "serviceProviderId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/controllers.SamlSsoIdpController.SamlRequestPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v{version}/sso/assertion/{serviceProviderId}": {
      "get": {
        "tags": [
          "SAML-SSO-IDP"
        ],
        "summary": "This is the assertion SAML2 endpoint for SSO integrations using Ease as the identity provider.",
        "operationId": "SamlSsoIdp_Assertion",
        "parameters": [
          {
            "in": "path",
            "name": "serviceProviderId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v{version}/sso/saml2": {
      "post": {
        "tags": [
          "SAML-SSO-SP"
        ],
        "summary": "This is the SAML2 endpoint for SSO integrations using Ease as the service provider.",
        "operationId": "SamlSsoSp_SamlLogin",
        "consumes": [ ],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          },
          {
            "in": "body",
            "name": "body",
            "schema": { }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect"
          },
          "400": {
            "description": "Bad Request"
          }
        }
      }
    },
    "/v{version}/sso/saml2/logout": {
      "get": {
        "tags": [
          "SAML-SSO-SP"
        ],
        "operationId": "SamlSsoSp_SamlLogout",
        "parameters": [
          {
            "in": "query",
            "name": "samlRequest",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "sigAlg",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "signature",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "relayState",
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v{version}/tasks/{id}": {
      "get": {
        "tags": [
          "Task"
        ],
        "summary": "task",
        "description": "Returns a task.<p>Scopes: task_read</p>",
        "operationId": "Task_GetTaskItem",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the task.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.TaskItem"
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/v{version}/teams/{id}": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "team",
        "description": "Returns team for a team id.<p>Scopes: export_company_info, export_payroll</p>",
        "operationId": "Team_GetTeam",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/dtos.Team"
            }
          }
        }
      }
    },
    "/v{version}/companies/{broker_id}/teams": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "teams",
        "description": "Returns broker teams.<p>Scopes: export_company_info</p>",
        "operationId": "Team_GetTeams",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "broker_id",
            "description": "The broker company id.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string",
            "default": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/0.WrappedArray[Team]"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "0.KeyValuePair[EmployeeStatus,PlanStats]": {
      "type": "object",
      "properties": {
        "key": {
          "enum": [
            "Active",
            "Leave of Absence",
            "COBRA",
            "Terminated",
            "Resigned",
            "Deceased",
            "Retired",
            "Applicant",
            "Test"
          ],
          "type": "string"
        },
        "value": {
          "$ref": "#/definitions/dtos.PlanStats"
        }
      }
    },
    "0.KeyValuePair[EnrollmentCostType,Decimal]": {
      "type": "object",
      "properties": {
        "key": {
          "enum": [
            "EmployerContributionDollar",
            "EmployerContributionPercent",
            "EmployeeContributionDollar",
            "EmployeeContributionPercent",
            "EmployerTotalCostPreTax",
            "EmployerTotalCostPostTax",
            "EmployerEmployeeCostPreTax",
            "EmployerEmployeeCostPostTax",
            "EmployerSpouseOrPartnerCostPreTax",
            "EmployerSpouseOrPartnerCostPostTax",
            "EmployerChildrenCostPreTax",
            "EmployerChildrenCostPostTax",
            "EmployeeTotalCostPreTax",
            "EmployeeTotalCostPostTax",
            "EmployeeEmployeeCostPreTax",
            "EmployeeEmployeeCostPostTax",
            "EmployeeSpouseOrPartnerCostPreTax",
            "EmployeeSpouseOrPartnerCostPostTax",
            "EmployeeChildrenCostPreTax",
            "EmployeeChildrenCostPostTax"
          ],
          "type": "string"
        },
        "value": {
          "format": "double",
          "type": "number"
        }
      }
    },
    "0.KeyValuePair[EnrollmentRateType,Decimal]": {
      "type": "object",
      "properties": {
        "key": {
          "enum": [
            "TotalRate",
            "EmployeeRate",
            "SpouseRate",
            "ChildrenRate"
          ],
          "type": "string"
        },
        "value": {
          "format": "double",
          "type": "number"
        }
      }
    },
    "0.KeyValuePair[String,String]": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[CompanyEmployeeW4]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.CompanyEmployeeW4"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[Company]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Company"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[EmployeeDeduction]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeDeduction"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[EmployeeDirectDeposit]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeDirectDeposit"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[EmployeeI9]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeI9"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[EmployeeWage]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeWage"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[Employee]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Employee"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[EnrollmentBeneficiary]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentBeneficiary"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[EnrollmentMember]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentMember"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[Enrollment]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Enrollment"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.PagedWrappedArray[ManageChangeSummary]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "next_id": {
          "description": "The id of the object next up after this set.",
          "type": "string"
        },
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.ManageChangeSummary"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Carrier]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Carrier"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[CompanyCoverageLine]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.CompanyCoverageLine"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Company]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Company"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Contact]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Contact"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[CustomField]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.CustomField"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Department]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Department"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Dependent]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Dependent"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Division]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Division"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[EmergencyContact]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmergencyContact"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[JobClass]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.JobClass"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[JobTitle]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.JobTitle"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Location]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Location"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[MappedId]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/api.MappedId"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[PartnerConnection]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PartnerConnection"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[PayGroup]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PayGroup"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Plan]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Plan"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[Team]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Team"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "0.WrappedArray[TimeOffTaken]": {
      "required": [
        "data"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "An array containing the list of relevant objects.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.TimeOffTaken"
          }
        },
        "error": {
          "description": "Contains any error messages, if applicable.",
          "type": "string"
        }
      }
    },
    "Mvc.IActionResult": {
      "type": "object"
    },
    "api.MappedId": {
      "required": [
        "client_id",
        "id"
      ],
      "type": "object",
      "properties": {
        "client_id": {
          "type": "string"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "controllers.CompanyController.Model": {
      "required": [
        "id"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "controllers.CompanyController.PartnerProduct": {
      "required": [
        "is_benefits_management_approved",
        "is_enabled"
      ],
      "type": "object",
      "properties": {
        "is_enabled": {
          "description": "Is the partner product enabled.",
          "type": "boolean"
        },
        "is_benefits_management_approved": {
          "description": "Is benefits management approved.",
          "type": "boolean"
        }
      }
    },
    "controllers.EaseConnectController.AccessTokenRequest": {
      "required": [
        "client_id",
        "client_secret",
        "code",
        "grant_type",
        "redirect_uri"
      ],
      "type": "object",
      "properties": {
        "client_id": {
          "description": "Your Ease Application Id (that is, the Ease Application where, for example, the redirect uri and scopes are specified).",
          "type": "string"
        },
        "client_secret": {
          "description": "The 'secret' that was generated for your Ease Application.  This secret is only visible directly after generat it, and is not otherwise retrievable.",
          "type": "string"
        },
        "redirect_uri": {
          "description": "The redirect uri registered to your Application. This must exactly match the redirect uri set in the Ease Application.",
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "grant_type": {
          "description": "Supported grant_types are: authorization_code, and refresh_token.",
          "type": "string"
        },
        "refresh_token": {
          "description": "Only required for grant_type = refresh_token. This refresh_token is part of the response when you submit an authorization code for a new access_token.",
          "type": "string"
        }
      }
    },
    "controllers.EaseConnectController.CodeAccessTokenResponse": {
      "required": [
        "access_token",
        "expires_in",
        "granted_scopes",
        "refresh_token",
        "token_type"
      ],
      "type": "object",
      "properties": {
        "refresh_token": {
          "type": "string"
        },
        "granted_scopes": {
          "type": "string"
        },
        "access_token": {
          "description": "The access token usable for making API calls.",
          "type": "string"
        },
        "expires_in": {
          "format": "int32",
          "description": "The number of seconds before the token expires.",
          "type": "integer"
        },
        "company_id": {
          "description": "The company id that the token grants access to.",
          "type": "string",
          "readOnly": true
        },
        "company_type": {
          "description": "The type of company this is in Ease.",
          "type": "string",
          "readOnly": true
        },
        "token_type": {
          "description": "The type of the token.",
          "type": "string"
        },
        "employee_id": {
          "description": "The employee id that the token grants access to.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "controllers.EmployeeResult": {
      "type": "object",
      "properties": {
        "external_id": {
          "description": "The provided employee id.",
          "type": "string"
        },
        "id": {
          "description": "Ease generated employee id.",
          "type": "string"
        }
      }
    },
    "controllers.PartnerController.AddPartnerRequest": {
      "type": "object",
      "properties": {
        "enable_benefits_management": {
          "type": "boolean"
        }
      }
    },
    "controllers.SamlSsoIdpController.SamlRequestPayload": {
      "type": "object",
      "properties": {
        "saml_request": {
          "type": "string"
        },
        "sig_alg": {
          "type": "string"
        },
        "signature": {
          "type": "string"
        },
        "relay_state": {
          "type": "string"
        }
      }
    },
    "dtos.ActivityCensusParameters": {
      "required": [
        "company_id",
        "from_date",
        "report_type",
        "to_date"
      ],
      "type": "object",
      "properties": {
        "from_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "to_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "report_type": {
          "enum": [
            "Detailed",
            "Add",
            "Change",
            "Termination"
          ],
          "type": "string"
        },
        "company_id": {
          "type": "string"
        }
      }
    },
    "dtos.Address": {
      "type": "object",
      "properties": {
        "addr1": {
          "description": "The street address.",
          "type": "string"
        },
        "addr2": {
          "description": "Secondary field for street address.",
          "type": "string"
        },
        "city": {
          "description": "The city.",
          "type": "string"
        },
        "state": {
          "description": "The state. Can be the 2 letter state abbreviation or the full state name.",
          "type": "string"
        },
        "zip": {
          "description": "The postal code.",
          "type": "string"
        },
        "county": {
          "description": "The county.",
          "type": "string"
        },
        "country": {
          "description": "The country.",
          "enum": [
            "Afghanistan",
            "Albania",
            "Algeria",
            "Argentina",
            "Armenia",
            "Australia",
            "Austria",
            "Azerbaijan",
            "Bahrain",
            "Bangladesh",
            "Belarus",
            "Belgium",
            "Belize",
            "Benin",
            "Bhutan",
            "Bolivarian Republic of Venezuela",
            "Bolivia",
            "Bosnia and Herzegovina",
            "Botswana",
            "Brazil",
            "Brunei Darussalam",
            "Bulgaria",
            "Burundi",
            "Cambodia",
            "Cameroon",
            "Canada",
            "Caribbean",
            "Chile",
            "Colombia",
            "Congo (DRC)",
            "Costa Rica",
            "Côte d'Ivoire",
            "Croatia",
            "Cuba",
            "Cyprus",
            "Czech Republic",
            "Denmark",
            "Djibouti",
            "Dominican Republic",
            "Ecuador",
            "Egypt",
            "El Salvador",
            "Eritrea",
            "Estonia",
            "Ethiopia",
            "Faroe Islands",
            "Fiji",
            "Finland",
            "France",
            "Gambia",
            "Georgia",
            "Germany",
            "Ghana",
            "Greece",
            "Greenland",
            "Guatemala",
            "Haiti",
            "Honduras",
            "Hong Kong S.A.R.",
            "Hungary",
            "Iceland",
            "India",
            "Indonesia",
            "Iran",
            "Iraq",
            "Ireland",
            "Islamic Republic of Pakistan",
            "Israel",
            "Italy",
            "Jamaica",
            "Japan",
            "Jordan",
            "Kazakhstan",
            "Kenya",
            "Korea",
            "Kuwait",
            "Kyrgyzstan",
            "Lao P.D.R.",
            "Latin America",
            "Latvia",
            "Lebanon",
            "Liberia",
            "Libya",
            "Liechtenstein",
            "Lithuania",
            "Luxembourg",
            "Macao S.A.R.",
            "Malaysia",
            "Maldives",
            "Mali",
            "Malta",
            "Mexico",
            "Moldova",
            "Mongolia",
            "Montenegro",
            "Morocco",
            "Myanmar",
            "Namibia",
            "Nepal",
            "Netherlands",
            "New Zealand",
            "Nicaragua",
            "Nigeria",
            "North Macedonia",
            "Norway",
            "Oman",
            "Palestine",
            "Panama",
            "Paraguay",
            "People's Republic of China",
            "Peru",
            "Philippines",
            "Poland",
            "Portugal",
            "Principality of Monaco",
            "Puerto Rico",
            "Qatar",
            "Réunion",
            "Romania",
            "Russia",
            "Rwanda",
            "Saudi Arabia",
            "Senegal",
            "Serbia",
            "Sierra Leone",
            "Singapore",
            "Slovakia",
            "Slovenia",
            "Somalia",
            "South Africa",
            "Spain",
            "Sri Lanka",
            "Sudan",
            "Sweden",
            "Switzerland",
            "Syria",
            "Taiwan",
            "Tajikistan",
            "Tanzania",
            "Thailand",
            "Trinidad and Tobago",
            "Tunisia",
            "Turkey",
            "Turkmenistan",
            "U.A.E.",
            "Uganda",
            "Ukraine",
            "United Kingdom",
            "United States",
            "Uruguay",
            "Uzbekistan",
            "Vietnam",
            "Yemen",
            "Zambia",
            "Zimbabwe"
          ],
          "type": "string"
        },
        "region": {
          "description": "The region.",
          "type": "string"
        }
      }
    },
    "dtos.AgentLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Broker": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The Id of the carrier",
          "type": "string"
        },
        "name": {
          "description": "The name of the carrier",
          "type": "string"
        },
        "active_employees_count": {
          "format": "int32",
          "description": "The count of active employees.",
          "type": "integer"
        },
        "contract_start_date": {
          "description": "The contract start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "subscription": {
          "$ref": "#/definitions/dtos.Product"
        },
        "teams": {
          "description": "All company teams.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.TeamLink"
          }
        },
        "extra_seats": {
          "$ref": "#/definitions/dtos.Product"
        },
        "products": {
          "description": "The other active products.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.ProductLink"
          }
        }
      }
    },
    "dtos.BrokerAgent": {
      "required": [
        "email",
        "first_name",
        "last_name",
        "status"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The Id of the agent.",
          "type": "string"
        },
        "first_name": {
          "description": "The agent first name.",
          "type": "string"
        },
        "last_name": {
          "description": "The agent last name.",
          "type": "string"
        },
        "status": {
          "description": "The agent status.",
          "enum": [
            "Active",
            "Assistant"
          ],
          "type": "string"
        },
        "email": {
          "description": "The agent email.",
          "type": "string"
        },
        "location_name": {
          "description": "The name of the agent's location.",
          "type": "string"
        }
      }
    },
    "dtos.BrokerAgentEditable": {
      "required": [
        "email",
        "first_name",
        "last_name",
        "status"
      ],
      "type": "object",
      "properties": {
        "first_name": {
          "description": "The agent first name.",
          "type": "string"
        },
        "last_name": {
          "description": "The agent last name.",
          "type": "string"
        },
        "status": {
          "description": "The agent status.",
          "enum": [
            "Active",
            "Assistant"
          ],
          "type": "string"
        },
        "email": {
          "description": "The agent email.",
          "type": "string"
        },
        "location_name": {
          "description": "The name of the agent's location.",
          "type": "string"
        }
      }
    },
    "dtos.BrokerLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Carrier": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The Id of the carrier.",
          "type": "string"
        },
        "name": {
          "description": "The name of the carrier.",
          "type": "string"
        },
        "group_number": {
          "description": "The group number of the carrier.",
          "type": "string"
        }
      }
    },
    "dtos.Company": {
      "required": [
        "create_date",
        "id",
        "last_modified_date",
        "name",
        "type"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The id of the company.",
          "type": "string"
        },
        "name": {
          "description": "The name of the company.",
          "type": "string"
        },
        "type": {
          "description": "The type of the company.",
          "enum": [
            "Application",
            "Broker",
            "Client",
            "Partner",
            "Ease"
          ],
          "type": "string"
        },
        "ein": {
          "description": "The EIN of the company.",
          "type": "string"
        },
        "sic": {
          "description": "The SIC of the company.",
          "type": "string"
        },
        "nature": {
          "description": "The Nature of Business of the company.",
          "type": "string"
        },
        "established_date": {
          "description": "The Established Date of the company.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "entity_type": {
          "description": "The Entity Type of the company.",
          "type": "string"
        },
        "website": {
          "description": "The Website of the company.",
          "type": "string"
        },
        "agency": {
          "$ref": "#/definitions/dtos.BrokerLink"
        },
        "agent": {
          "$ref": "#/definitions/dtos.AgentLink"
        },
        "is_open_enrollment": {
          "description": "Is the company in Open Enrollment?",
          "type": "boolean"
        },
        "open_enrollment_start_date": {
          "description": "Open Enrollment start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "open_enrollment_end_date": {
          "description": "Open Enrollment end date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "teams": {
          "description": "All company teams.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.TeamLink"
          }
        },
        "locations": {
          "description": "All company locations.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.LocationLink"
          }
        },
        "departments": {
          "description": "All company departments.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.DepartmentLink"
          }
        },
        "job_titles": {
          "description": "All company job titles.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.JobTitleLink"
          }
        },
        "plans": {
          "$ref": "#/definitions/dtos.PlansLink"
        },
        "employees": {
          "$ref": "#/definitions/dtos.EmployeeLinks"
        },
        "total_employees_count": {
          "format": "int32",
          "description": "The total count of employees.",
          "type": "integer"
        },
        "active_employees_count": {
          "format": "int32",
          "description": "The count of active employees.",
          "type": "integer"
        },
        "codes": {
          "description": "A key value store of custom codes for this company.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "last_modified_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "create_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "status": {
          "description": "The status of the company.",
          "enum": [
            "Active",
            "Inactive",
            "Demo",
            "Migrating"
          ],
          "type": "string"
        },
        "client_admins": {
          "description": "A list of the employees designated as client admins.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeLink"
          }
        },
        "benefits_signatory": {
          "$ref": "#/definitions/dtos.EmployeeLink"
        },
        "producers": {
          "description": "A list of the broker contacts designated as producers.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.AgentLink"
          }
        }
      }
    },
    "dtos.CompanyCoverageLine": {
      "required": [
        "end_date",
        "id",
        "last_modified",
        "name",
        "plan",
        "start_date",
        "type_id"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type_id": {
          "format": "int32",
          "description": "An Id that corresponds to a deduction type.  \r\n<br /><br />\r\npre- or post-tax\r\nDEDUCTION_TYPE_PRE_TAX = 5;\r\nDEDUCTION_TYPE_POST_TAX = 4;\r\n\r\nalways pre-tax\r\nDEDUCTION_TYPE_401K = 1;\r\nDEDUCTION_TYPE_SECTION_132 = 8;\r\nDEDUCTION_TYPE_HSA = 9;\r\nDEDUCTION_TYPE_408P = 11;\r\nDEDUCTION_TYPE_403B = 12;\r\nDEDUCTION_TYPE_FSA_DEPENDENT_CARE = 24;\r\nDEDUCTION_TYPE_MEDICAL_PRETAX = 25;\r\n\r\nalways post-tax\r\nDEDUCTION_TYPE_408K = 15;\r\nDEDUCTION_TYPE_401K_ROTH = 17;\r\nDEDUCTION_TYPE_403B_ROTH = 20;",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "start_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "deleted": {
          "format": "date-time",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "type": "string"
        },
        "plan": {
          "$ref": "#/definitions/dtos.PlanLink"
        }
      }
    },
    "dtos.CompanyEditable": {
      "type": "object",
      "properties": {
        "status": {
          "description": "The status of the company.",
          "enum": [
            "Active",
            "Inactive",
            "Demo"
          ],
          "type": "string"
        },
        "agent_id": {
          "description": "The ID of the agent for this company.",
          "type": "string"
        },
        "teams": {
          "description": "A list of team names belonging to the agency.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "open_enrollment_start_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "open_enrollment_end_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        }
      }
    },
    "dtos.CompanyEmployeeW4": {
      "type": "object",
      "properties": {
        "employee_id": {
          "type": "string"
        },
        "state_of_taxation": {
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/dtos.StateW4"
        },
        "federal": {
          "$ref": "#/definitions/dtos.FederalW4"
        }
      }
    },
    "dtos.CompanyLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.CompanyOpenEnrollmentSummary": {
      "type": "object",
      "properties": {
        "start_date": {
          "description": "The open enrollment start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "The open enrollment end date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "employee_counts": {
          "$ref": "#/definitions/dtos.EmployeeCounts"
        },
        "plans": {
          "description": "The plans selected for open enrollment.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanLink"
          }
        }
      }
    },
    "dtos.Contact": {
      "type": "object",
      "properties": {
        "id": {
          "description": "The id of the broker contact.",
          "type": "string"
        },
        "full_name": {
          "description": "The full name of the broker contact.",
          "type": "string"
        },
        "email": {
          "description": "The email of the broker contact.",
          "type": "string"
        },
        "type": {
          "description": "The type of broker contact.",
          "type": "string"
        },
        "teams": {
          "description": "A list containing all teams the broker contact belongs to.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.TeamLink"
          }
        }
      }
    },
    "dtos.CustomField": {
      "description": "A custom field for the company.",
      "required": [
        "id",
        "is_required",
        "text"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The Id of the custom field.",
          "type": "string"
        },
        "text": {
          "description": "The text of the custom field.",
          "type": "string"
        },
        "is_required": {
          "description": "Indicates whether or not this question is required.",
          "type": "boolean"
        }
      }
    },
    "dtos.Department": {
      "required": [
        "created",
        "id",
        "last_modified",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "name": {
          "description": "The object name.",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "description": "The create datetime.",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The last modified datetime.",
          "type": "string"
        }
      }
    },
    "dtos.DepartmentLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Dependent": {
      "type": "object",
      "properties": {
        "first_name": {
          "description": "The Dependent's firstname.",
          "type": "string"
        },
        "last_name": {
          "description": "The Dependent's lastname.",
          "type": "string"
        },
        "middle_name": {
          "description": "The Dependent's middlename.",
          "type": "string"
        },
        "gender": {
          "description": "The Dependent's gender.",
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "birth_date": {
          "description": "The Dependent's birthdate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "ssn": {
          "description": "The Dependent's SSN.",
          "type": "string"
        },
        "relationship": {
          "description": "The Dependent's relationship.",
          "type": "string"
        },
        "tobacco": {
          "description": "The Dependent's tobacco status.",
          "type": "string"
        },
        "disabled": {
          "description": "The Dependent is disabled.",
          "type": "string"
        },
        "has_diff_address": {
          "description": "Does the Dependent have a different address?",
          "type": "string"
        },
        "is_archived": {
          "description": "The Dependent is archived.",
          "type": "boolean"
        },
        "deceased_date": {
          "description": "The Dependent's deceased date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "diff_address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "id": {
          "description": "The Dependent's Id.",
          "type": "string"
        }
      }
    },
    "dtos.DependentLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Division": {
      "required": [
        "created",
        "id",
        "last_modified",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "company_id": {
          "description": "The company id.",
          "type": "string"
        },
        "name": {
          "description": "The object name.",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "description": "The create datetime.",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The last modified datetime.",
          "type": "string"
        }
      }
    },
    "dtos.DivisionLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.DocumentLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Election": {
      "required": [
        "plan_id"
      ],
      "type": "object",
      "properties": {
        "plan_id": {
          "description": "The plan id.  Must match an existing plan_id from the list of plans.",
          "type": "string"
        },
        "status": {
          "description": "The benefit enrollment status.",
          "enum": [
            "",
            "Enrolled",
            "Waived"
          ],
          "type": "string"
        },
        "waive_reason": {
          "description": "Waive reason for Employee.",
          "enum": [
            "",
            "Spouse's group plan",
            "Parent's group plan",
            "Group coverage continuation (COBRA)",
            "Medi-Cal",
            "Medicaid",
            "Medicare",
            "Medical Assistance",
            "State-funded plan",
            "TRICARE",
            "Individual policy",
            "Military",
            "Veterans Administration",
            "Choose to be without insurance",
            "Cost",
            "No other coverage",
            "Other",
            "General Assistance Medical Care",
            "MNCare",
            "MCHA",
            "Other coverage",
            "South Dakota Risk Pool",
            "CHAND",
            "Other Employer Coverage"
          ],
          "type": "string"
        },
        "benefit": {
          "format": "double",
          "description": "The benefit amount.",
          "type": "number"
        }
      }
    },
    "dtos.Eligibility": {
      "type": "object",
      "properties": {
        "id": {
          "description": "The Ease eligibility id.",
          "type": "string"
        },
        "rates": {
          "$ref": "#/definitions/dtos.EligibilityRates"
        },
        "contributions": {
          "$ref": "#/definitions/dtos.EligibilityContributions"
        },
        "job_classes": {
          "description": "The JobClasses for the plan eligibility.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.JobClassLink"
          }
        },
        "children_age_min": {
          "format": "int32",
          "description": "Minumum child age for eligibility.",
          "type": "integer"
        },
        "children_age_max": {
          "format": "int32",
          "description": "Maximum child age for eligibility.",
          "type": "integer"
        },
        "children_student_age_min": {
          "format": "int32",
          "description": "Minumum child/student age for eligibility.",
          "type": "integer"
        },
        "children_student_age_max": {
          "format": "int32",
          "description": "Maximum child/student age for eligibility.",
          "type": "integer"
        },
        "children_disabled_age_min": {
          "format": "int32",
          "description": "Minumum disabled child age for eligibility.",
          "type": "integer"
        },
        "children_disabled_age_max": {
          "format": "int32",
          "description": "Maximum disabled child age for eligibility.",
          "type": "integer"
        },
        "locations": {
          "description": "The locations for plan eligibility.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Location"
          }
        },
        "name": {
          "description": "The eligibility name.",
          "type": "string"
        },
        "policy_number": {
          "description": "The Policy Number of the eligibility.",
          "type": "string"
        },
        "subgroup_number": {
          "description": "The subgroupnumber of the eligibility.",
          "type": "string"
        },
        "scheduled_hours": {
          "description": "The scheduledhours of the eligibility.",
          "type": "string"
        },
        "waiting_period_amount": {
          "format": "int32",
          "description": "The waiting period amount of the eligibility.",
          "type": "integer"
        },
        "waiting_period_type": {
          "description": "The waiting period type of the eligibility.",
          "enum": [
            "Days",
            "Months",
            ""
          ],
          "type": "string"
        },
        "entry_date": {
          "description": "The entry date of the eligibility.",
          "enum": [
            "First of the Month",
            "First of the Month Next Following",
            "Immediate",
            "Semi-Annual",
            "Quarterly",
            "15th of the Month",
            "First of the Month (Coinciding)"
          ],
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "term_date": {
          "description": "The termination date of the eligibility.",
          "enum": [
            "End of the Month",
            "End of Second Month",
            "Immediate",
            "15th of the Month"
          ],
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "rate_type": {
          "description": "The type of rates.",
          "type": "string"
        },
        "rate_age_band_type": {
          "description": "The age band type used for the rates.",
          "type": "string"
        },
        "tax": {
          "description": "The Tax treatment of the eligibility.",
          "enum": [
            "Pre-Tax",
            "Post-Tax"
          ],
          "type": "string"
        },
        "is_spouse_eligible": {
          "description": "Indicates if the spouse eligible for coverage.",
          "type": "boolean"
        },
        "is_different_gender_partner_eligible": {
          "description": "Indicates if different gender partner eligible for coverage.",
          "type": "boolean"
        },
        "is_same_gender_partner_eligible": {
          "description": "Indicates if same gender partner eligible for coverage.",
          "type": "boolean"
        },
        "is_child_eligible": {
          "description": "Indicates if children are eligible for coverage.",
          "type": "boolean"
        }
      }
    },
    "dtos.EligibilityContributions": {
      "required": [
        "contribution_detail",
        "contribution_type"
      ],
      "type": "object",
      "properties": {
        "contribution_detail": {
          "enum": [
            "Table",
            "Tier",
            "Custom",
            "Tier-Tobacco"
          ],
          "type": "string"
        },
        "contribution_type": {
          "description": "Specifies who the contribution costs are attributed to.  \"Base Plan\" can be used to inherit from the base plan.",
          "enum": [
            "Employee",
            "Employer",
            "Base Plan"
          ],
          "type": "string"
        },
        "base_plan_id": {
          "description": "The base plan id.  Must match an existing plan_id from the list of externally supplied plans OR match an existing ease plan id.",
          "type": "string"
        },
        "dependents": {
          "description": "Combined Dependents. Optionally used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "ee": {
          "description": "Employee only. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "es": {
          "description": "Employee + Spouse. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "e_s1c": {
          "description": "Employee + Spouse + 1 Child. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "e_s2c": {
          "description": "Employee + Spouse + 2 Children. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "e_s3c": {
          "description": "Employee + Spouse + 3 Children. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "e1c": {
          "description": "Employee + 1 child. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "e2c": {
          "description": "Employee + 2 children. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "e3c": {
          "description": "Employee + 3 children. Used when contribution_detail = \"Tier\".",
          "type": "string"
        },
        "ee_tobacco": {
          "description": "Employee only. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "es_tobacco": {
          "description": "Employee + Spouse. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "e_s1c_tobacco": {
          "description": "Employee + Spouse + 1 child. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "e_s2c_tobacco": {
          "description": "Employee + Spouse + 2 children. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "e_s3c_tobacco": {
          "description": "Employee + Spouse + 3 children. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "e1c_tobacco": {
          "description": "Employee + 1 child. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "e2c_tobacco": {
          "description": "Employee + 2 children. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "e3c_tobacco": {
          "description": "Employee + 3 children. Used when contribution_detail = \"Tier-Tobacco\".",
          "type": "string"
        },
        "employee": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "spouse": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "children": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "employee_tobacco": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "spouse_tobacco": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "child1": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "child2": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "child3": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "family": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "overall_max": {
          "description": "Used when contribution_detail = \"Table\".",
          "type": "string"
        },
        "apply_base_plan_amount_to_employee_only": {
          "description": "Indicates whether or not to limit the base amount to employee only.",
          "type": "boolean"
        }
      }
    },
    "dtos.EligibilityEditable": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The eligibility name.",
          "type": "string"
        },
        "policy_number": {
          "description": "The Policy Number of the eligibility.",
          "type": "string"
        },
        "subgroup_number": {
          "description": "The subgroupnumber of the eligibility.",
          "type": "string"
        },
        "scheduled_hours": {
          "description": "The scheduledhours of the eligibility.",
          "type": "string"
        },
        "waiting_period_amount": {
          "format": "int32",
          "description": "The waiting period amount of the eligibility.",
          "type": "integer"
        },
        "waiting_period_type": {
          "description": "The waiting period type of the eligibility.",
          "enum": [
            "Days",
            "Months",
            ""
          ],
          "type": "string"
        },
        "entry_date": {
          "description": "The entry date of the eligibility.",
          "enum": [
            "First of the Month",
            "First of the Month Next Following",
            "Immediate",
            "Semi-Annual",
            "Quarterly",
            "15th of the Month",
            "First of the Month (Coinciding)"
          ],
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "term_date": {
          "description": "The termination date of the eligibility.",
          "enum": [
            "End of the Month",
            "End of Second Month",
            "Immediate",
            "15th of the Month"
          ],
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "rate_type": {
          "description": "The type of rates.",
          "type": "string"
        },
        "rate_age_band_type": {
          "description": "The age band type used for the rates.",
          "type": "string"
        },
        "tax": {
          "description": "The Tax treatment of the eligibility.",
          "enum": [
            "Pre-Tax",
            "Post-Tax"
          ],
          "type": "string"
        },
        "is_spouse_eligible": {
          "description": "Indicates if the spouse eligible for coverage.",
          "type": "boolean"
        },
        "is_different_gender_partner_eligible": {
          "description": "Indicates if different gender partner eligible for coverage.",
          "type": "boolean"
        },
        "is_same_gender_partner_eligible": {
          "description": "Indicates if same gender partner eligible for coverage.",
          "type": "boolean"
        },
        "is_child_eligible": {
          "description": "Indicates if children are eligible for coverage.",
          "type": "boolean"
        }
      }
    },
    "dtos.EligibilityRates": {
      "required": [
        "rate_type"
      ],
      "type": "object",
      "properties": {
        "rate_type": {
          "enum": [
            "Table",
            "Tier-Table",
            "Tier"
          ],
          "type": "string"
        },
        "plan_type": {
          "description": "The type of the plan. See Plan.Type for more information.",
          "type": "string"
        },
        "rate_basis": {
          "description": "The rate basis for a life plan.",
          "type": "string"
        },
        "rate_adjustment_factor": {
          "description": "The Rate Adjustment Factor,",
          "type": "string"
        },
        "per_unit": {
          "format": "double",
          "description": "The per unit amount for a life plan.",
          "type": "number"
        },
        "tier_employee": {
          "description": "Amount for employee. Used when RateType == \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_spouse": {
          "description": "Amount for spouse. Used when RateType == \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_children": {
          "description": "Amount for children. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_dependents": {
          "description": "Amount for dependents. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_ee": {
          "description": "Amount for employee Only. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_es": {
          "description": "Amount for employee + spouse. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_e_s1c": {
          "description": "Amount for employee + spouse + 1 child. The rate for child 1. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_e_s2c": {
          "description": "Amount for employee + spouse + 2 children. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_e_s3c": {
          "description": "Amount for employee + spouse + 3 children. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_e1c": {
          "description": "Amount for employee + 1 child. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_e2c": {
          "description": "Amount for employee + 2 children. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_e3c": {
          "description": "Amount for employee + 3 children. Used when RateType = \"Tier\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "tier_rates_tobacco": {
          "description": "Used when RateType = \"Tier\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_ee_only": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eesp": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_e_e1ch": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eech": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_family": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_ee_only_tobacco": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eesp_tobacco": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_e_e1ch_tobacco": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eech_tobacco": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_family_tobacco": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_ee_only_male": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eesp_male": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_e_e1ch_male": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eech_male": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_family_male": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_ee_only_female": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eesp_female": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_e_e1ch_female": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_eech_female": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tier_table_rates_family_female": {
          "description": "Used when RateType = \"Tier-Table\". Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_columns": {
          "description": "Defaults to Rates.",
          "enum": [
            "Rates",
            "Employee & Spouse Rates",
            "Gender Rates",
            "Tobacco Rates",
            "Gender & Tobacco Rates",
            "Employee & Spouse & Tobacco Rates",
            "Employee & Spouse & Child Rates"
          ],
          "type": "string"
        },
        "tier_table_columns": {
          "description": "Defaults to Rates.",
          "enum": [
            "Rates",
            "Gender Rates",
            "Tobacco Rates"
          ],
          "type": "string"
        },
        "table_rates": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_employee": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_spouse": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_employee_tobacco": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_spouse_tobacco": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10 or 30%.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_child": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_male": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_female": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_tobacco": {
          "description": "Contains the rate table amounts for the employee by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_male_tobacco": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_female_tobacco": {
          "description": "Contains the rate table amounts by age, [0] = {0-17}, [1] = 18, [2] = 19, ..., [62] = 80+. Used when RateType = \"Table\". Note that the specific configuration will depend on the AgeBandType value. Example: $12.10.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "table_child1": {
          "description": "Amount for 1 child. Used when RateType = \"Table\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "table_child2": {
          "description": "Amount for 2 children. Used when RateType = \"Table\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "table_child3": {
          "description": "Amount for 3 children. Used when RateType = \"Table\". Example: $12.10 or 30%.",
          "type": "string"
        },
        "age_band_type": {
          "description": "Age bands for the rates. The default is \"All Ages (starting with 0-17)\", which starts with 0-17.",
          "enum": [
            "All Ages (starting with 0-17)",
            "All Ages",
            "5 Year Age Bands",
            "10 Year Age Bands"
          ],
          "type": "string"
        },
        "base_spouse_age_off_employee": {
          "description": "Base the spouse age off employee age.",
          "type": "boolean"
        },
        "base_spouse_tobacco_off_employee": {
          "description": "Base the tobacco spouse age off employee age.",
          "type": "boolean"
        },
        "base_adult_children_off_age": {
          "description": "Base the adult children age off their age.",
          "type": "boolean"
        },
        "rate_library_plan_id": {
          "description": "For rates associated with a Rate Library, the external Plan Id for the rate.",
          "type": "string"
        },
        "rate_library_name": {
          "description": "For rates associated with a Rate Library, the library name for the rate.",
          "type": "string"
        }
      }
    },
    "dtos.EmergencyContact": {
      "type": "object",
      "properties": {
        "type": {
          "description": "The Emergency Contact type",
          "type": "string"
        },
        "first_name": {
          "description": "The Emergency Contact firstname",
          "type": "string"
        },
        "last_name": {
          "description": "The Emergency Contact lastname",
          "type": "string"
        },
        "relationship": {
          "description": "The Emergency Contact relationship",
          "type": "string"
        },
        "phone": {
          "description": "The Emergency Contact phone",
          "type": "string"
        },
        "email": {
          "description": "The Emergency Contact email",
          "type": "string"
        },
        "id": {
          "description": "The Emergency Contact Id",
          "type": "string"
        }
      }
    },
    "dtos.EmergencyContactLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Employee": {
      "required": [
        "first_name",
        "last_name",
        "ssn",
        "status",
        "type"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The id of the employee.",
          "type": "string"
        },
        "company_id": {
          "description": "The company id of the employee.",
          "type": "string"
        },
        "language": {
          "description": "The employee's language.",
          "type": "string"
        },
        "tobacco": {
          "description": "The employee's tobacco usage.",
          "type": "string"
        },
        "disabled": {
          "description": "The employee's disabled status.",
          "type": "boolean"
        },
        "latest_hire_date": {
          "description": "The employee's latest hiredate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "enrollment_status": {
          "description": "The employee's enrollment status",
          "enum": [
            "Not Started",
            "In Progress",
            "Finished"
          ],
          "type": "string"
        },
        "manager": {
          "$ref": "#/definitions/dtos.EmployeeLink"
        },
        "dependents": {
          "description": "All employee dependents.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.DependentLink"
          }
        },
        "emergency_contacts": {
          "description": "All employee emergency contacts.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmergencyContactLink"
          }
        },
        "custom_fields": {
          "description": "A list of custom field values for the employee.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/0.KeyValuePair[String,String]"
          }
        },
        "last_login": {
          "format": "date-time",
          "description": "The last login timestamp, in UTC.",
          "type": "string"
        },
        "payroll_group": {
          "$ref": "#/definitions/dtos.PayrollGroupIdName"
        },
        "department": {
          "$ref": "#/definitions/dtos.DepartmentLink"
        },
        "location": {
          "$ref": "#/definitions/dtos.LocationLink"
        },
        "job_class": {
          "$ref": "#/definitions/dtos.JobClassLink"
        },
        "division": {
          "$ref": "#/definitions/dtos.DivisionLink"
        },
        "compensation_type": {
          "description": "Current Compensation Type, only required for Compensation changes.",
          "enum": [
            "Salary",
            "Hourly"
          ],
          "type": "string"
        },
        "compensation": {
          "format": "double",
          "description": "Current Compensation, only required for Compensation changes.",
          "type": "number"
        },
        "compensation_start_date": {
          "description": "Current Compensation Start Date, only required for Compensation changes.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "compensation_end_date": {
          "description": "Current Compensation End Date, only relevant for Compensation changes.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "eid": {
          "description": "External identifier for importing purposes. Auto-assigned if not provided.",
          "type": "string"
        },
        "payroll_id": {
          "description": "External Payroll Id.",
          "type": "string"
        },
        "type": {
          "description": "Type",
          "enum": [
            "Full-Time",
            "Part-Time",
            "Variable-Hour",
            "Contractor",
            "Seasonal",
            "Intern"
          ],
          "type": "string"
        },
        "status": {
          "description": "Status.",
          "enum": [
            "Active",
            "Leave of Absence",
            "COBRA",
            "Terminated",
            "Resigned",
            "Deceased",
            "Retired",
            "Applicant",
            "Test"
          ],
          "type": "string"
        },
        "status_effective_date": {
          "description": "The effective date of the status change, only required for status updates.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "status_reason": {
          "description": "The reason recorded for the status change, only required for status updates.",
          "type": "string"
        },
        "termination_type": {
          "description": "Type of termination, only required when status is terminated.",
          "enum": [
            "Involuntary",
            "Voluntary",
            "Gross Misconduct"
          ],
          "type": "string"
        },
        "ssn": {
          "description": "Social Security Number.",
          "type": "string"
        },
        "first_name": {
          "description": "First Name.",
          "type": "string"
        },
        "middle_name": {
          "description": "Middle Name.",
          "type": "string"
        },
        "last_name": {
          "description": "Last Name.",
          "type": "string"
        },
        "home_address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "email": {
          "description": "Email Address.",
          "type": "string"
        },
        "birth_date": {
          "description": "Date of Birth.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "gender": {
          "description": "Gender.",
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "personal_email": {
          "description": "Personal Email Address.",
          "type": "string"
        },
        "home_phone": {
          "description": "Home Phone Number.",
          "type": "string"
        },
        "mobile_phone": {
          "description": "Mobile Phone Number.",
          "type": "string"
        },
        "work_phone": {
          "description": "Work Phone Number.",
          "type": "string"
        },
        "marital": {
          "description": "Marital Status.",
          "enum": [
            "",
            "Single",
            "Married",
            "Divorced",
            "Domestic Partner",
            "Legally Separated",
            "Widowed"
          ],
          "type": "string"
        },
        "hire_date": {
          "description": "If the employee is not terminated, the latest HireDate is returned, otherwise the employee's OriginalHireDate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "job_title": {
          "description": "The employee's job title.",
          "type": "string"
        },
        "hours": {
          "format": "double",
          "description": "Hours.",
          "type": "number"
        },
        "pay_cycle": {
          "description": "Pay Cycle.",
          "enum": [
            "Annually",
            "2 Pay Periods",
            "3 Pay Periods",
            "4 Pay Periods",
            "5 Pay Periods",
            "6 Pay Periods",
            "7 Pay Periods",
            "8 Pay Periods",
            "9 Pay Periods",
            "10 Pay Periods",
            "11 Pay Periods",
            "Monthly",
            "13 Pay Periods",
            "14 Pay Periods",
            "15 Pay Periods",
            "16 Pay Periods",
            "17 Pay Periods",
            "18 Pay Periods",
            "19 Pay Periods",
            "20 Pay Periods",
            "21 Pay Periods",
            "22 Pay Periods",
            "23 Pay Periods",
            "Semi-Monthly",
            "25 Pay Periods",
            "Bi-Weekly",
            "27 Pay Periods",
            "28 Pay Periods",
            "29 Pay Periods",
            "30 Pay Periods",
            "31 Pay Periods",
            "32 Pay Periods",
            "33 Pay Periods",
            "34 Pay Periods",
            "35 Pay Periods",
            "36 Pay Periods",
            "37 Pay Periods",
            "38 Pay Periods",
            "39 Pay Periods",
            "40 Pay Periods",
            "41 Pay Periods",
            "42 Pay Periods",
            "43 Pay Periods",
            "44 Pay Periods",
            "45 Pay Periods",
            "46 Pay Periods",
            "47 Pay Periods",
            "48 Pay Periods",
            "49 Pay Periods",
            "50 Pay Periods",
            "51 Pay Periods",
            "Weekly"
          ],
          "type": "string"
        }
      }
    },
    "dtos.EmployeeChanges": {
      "type": "object",
      "properties": {
        "change_ids": {
          "description": "The list of change ids to process.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "note": {
          "description": "The note that will be displayed to users.",
          "type": "string"
        }
      }
    },
    "dtos.EmployeeCounts": {
      "type": "object",
      "properties": {
        "full_time": {
          "format": "int32",
          "description": "The number of full time employees.",
          "type": "integer"
        },
        "part_time": {
          "format": "int32",
          "description": "The number of part time employees.",
          "type": "integer"
        },
        "in_progress": {
          "format": "int32",
          "description": "The number of employees in progress of completing open enrollment.",
          "type": "integer"
        },
        "not_started": {
          "format": "int32",
          "description": "The number of employees who have not started open enrollment.",
          "type": "integer"
        },
        "finished": {
          "format": "int32",
          "description": "The number of employees who have finished open enrollment.",
          "type": "integer"
        }
      }
    },
    "dtos.EmployeeDeduction": {
      "required": [
        "amount",
        "amount_type",
        "annual_deduction_id",
        "coverage_line_id",
        "employee_deduction_id",
        "employee_id",
        "employer_amount_type",
        "end_date",
        "start_date"
      ],
      "type": "object",
      "properties": {
        "coverage_line_id": {
          "type": "string"
        },
        "employee_deduction_id": {
          "type": "string"
        },
        "employee_id": {
          "type": "string"
        },
        "amount": {
          "format": "double",
          "description": "The amount for the deduction.",
          "type": "number"
        },
        "amount_type": {
          "description": "The amount type for the deduction.",
          "enum": [
            "Dollar",
            "Percent"
          ],
          "type": "string"
        },
        "start_date": {
          "description": "The start date of the deduction.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "The end date of the deduction.  Deductions are considered voided if the start date follows the end date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "annual_deduction_id": {
          "description": "The deduction id for the calendar year.",
          "type": "string"
        },
        "employer_amount_type": {
          "enum": [
            "Dollar",
            "Percent"
          ],
          "type": "string"
        },
        "employer_amount": {
          "format": "double",
          "type": "number"
        },
        "annual_cap": {
          "format": "double",
          "type": "number"
        },
        "last_modified": {
          "format": "date-time",
          "type": "string"
        },
        "employer_monthly_amount": {
          "format": "double",
          "description": "The monthly amount for the employer portion.",
          "type": "number"
        },
        "monthly_amount": {
          "format": "double",
          "description": "The monthly amount fo the employee portion.",
          "type": "number"
        },
        "coverage_tier": {
          "description": "The coverage tier in effect for this deduction.",
          "enum": [
            "Employee Only",
            "Employee + 1 Child",
            "Employee + 2 Children",
            "Employee + 3 Children",
            "Employee + Spouse",
            "Employee + Spouse + 1 Child",
            "Employee + Spouse + 2 Children",
            "Employee + Spouse + 3 Children"
          ],
          "type": "string"
        },
        "includes_domestic_partner": {
          "description": "Determines whether or not this deduction period includes domestic partners.",
          "type": "boolean"
        },
        "is_cobra": {
          "description": "Determines whether or not this is a COBRA deduction.",
          "type": "boolean"
        }
      }
    },
    "dtos.EmployeeDirectDeposit": {
      "required": [
        "aba_transit_number",
        "account_number",
        "account_type",
        "amount",
        "calculation_type",
        "display_order",
        "employee_id",
        "end_date",
        "id",
        "last_modified_date",
        "name",
        "start_date"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "Ease Bank Account id.",
          "type": "string"
        },
        "employee_id": {
          "description": "Ease Employee id.",
          "type": "string"
        },
        "name": {
          "description": "Bank name.",
          "type": "string"
        },
        "start_date": {
          "description": "Bank start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "Bank end date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "last_modified_date": {
          "format": "date-time",
          "description": "The last modified datetime",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "account_number": {
          "description": "Bank account number.",
          "type": "string"
        },
        "account_type": {
          "description": "Bank account type.",
          "enum": [
            "Checking",
            "Savings"
          ],
          "type": "string"
        },
        "aba_transit_number": {
          "description": "ABA transit number.",
          "type": "string"
        },
        "calculation_type": {
          "description": "Either a flat currency or percentage value of amount to desposit.",
          "enum": [
            "Dollar",
            "Percent",
            "Balance"
          ],
          "type": "string"
        },
        "amount": {
          "format": "double",
          "description": "Amount to deposit, used in conjunction with calculation type.",
          "type": "number"
        },
        "display_order": {
          "format": "int32",
          "description": "The ranking of this bank account, used to determine deposit order when used with multiple accounts, in descending order.  Values range from 1-99 (highest number takes priority).",
          "type": "integer"
        }
      }
    },
    "dtos.EmployeeEditable": {
      "required": [
        "first_name",
        "last_name",
        "ssn",
        "status",
        "type"
      ],
      "type": "object",
      "properties": {
        "eid": {
          "description": "External identifier for importing purposes. Auto-assigned if not provided.",
          "type": "string"
        },
        "payroll_id": {
          "description": "External Payroll Id.",
          "type": "string"
        },
        "type": {
          "description": "Type",
          "enum": [
            "Full-Time",
            "Part-Time",
            "Variable-Hour",
            "Contractor",
            "Seasonal",
            "Intern"
          ],
          "type": "string"
        },
        "status": {
          "description": "Status.",
          "enum": [
            "Active",
            "Leave of Absence",
            "COBRA",
            "Terminated",
            "Resigned",
            "Deceased",
            "Retired",
            "Applicant",
            "Test"
          ],
          "type": "string"
        },
        "status_effective_date": {
          "description": "The effective date of the status change, only required for status updates.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "status_reason": {
          "description": "The reason recorded for the status change, only required for status updates.",
          "type": "string"
        },
        "termination_type": {
          "description": "Type of termination, only required when status is terminated.",
          "enum": [
            "Involuntary",
            "Voluntary",
            "Gross Misconduct"
          ],
          "type": "string"
        },
        "ssn": {
          "description": "Social Security Number.",
          "type": "string"
        },
        "first_name": {
          "description": "First Name.",
          "type": "string"
        },
        "middle_name": {
          "description": "Middle Name.",
          "type": "string"
        },
        "last_name": {
          "description": "Last Name.",
          "type": "string"
        },
        "home_address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "email": {
          "description": "Email Address.",
          "type": "string"
        },
        "birth_date": {
          "description": "Date of Birth.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "gender": {
          "description": "Gender.",
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "personal_email": {
          "description": "Personal Email Address.",
          "type": "string"
        },
        "home_phone": {
          "description": "Home Phone Number.",
          "type": "string"
        },
        "mobile_phone": {
          "description": "Mobile Phone Number.",
          "type": "string"
        },
        "work_phone": {
          "description": "Work Phone Number.",
          "type": "string"
        },
        "marital": {
          "description": "Marital Status.",
          "enum": [
            "",
            "Single",
            "Married",
            "Divorced",
            "Domestic Partner",
            "Legally Separated",
            "Widowed"
          ],
          "type": "string"
        },
        "hire_date": {
          "description": "If the employee is not terminated, the latest HireDate is returned, otherwise the employee's OriginalHireDate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "job_title": {
          "description": "The employee's job title.",
          "type": "string"
        },
        "payroll_group": {
          "description": "Payroll Group.",
          "type": "string"
        },
        "department": {
          "description": "Department name.",
          "type": "string"
        },
        "location": {
          "description": "Employment location name.",
          "type": "string"
        },
        "job_class": {
          "description": "Job class name.",
          "type": "string"
        },
        "division": {
          "description": "Division name.",
          "type": "string"
        },
        "hours": {
          "format": "double",
          "description": "Hours.",
          "type": "number"
        },
        "pay_cycle": {
          "description": "Pay Cycle.",
          "enum": [
            "Annually",
            "2 Pay Periods",
            "3 Pay Periods",
            "4 Pay Periods",
            "5 Pay Periods",
            "6 Pay Periods",
            "7 Pay Periods",
            "8 Pay Periods",
            "9 Pay Periods",
            "10 Pay Periods",
            "11 Pay Periods",
            "Monthly",
            "13 Pay Periods",
            "14 Pay Periods",
            "15 Pay Periods",
            "16 Pay Periods",
            "17 Pay Periods",
            "18 Pay Periods",
            "19 Pay Periods",
            "20 Pay Periods",
            "21 Pay Periods",
            "22 Pay Periods",
            "23 Pay Periods",
            "Semi-Monthly",
            "25 Pay Periods",
            "Bi-Weekly",
            "27 Pay Periods",
            "28 Pay Periods",
            "29 Pay Periods",
            "30 Pay Periods",
            "31 Pay Periods",
            "32 Pay Periods",
            "33 Pay Periods",
            "34 Pay Periods",
            "35 Pay Periods",
            "36 Pay Periods",
            "37 Pay Periods",
            "38 Pay Periods",
            "39 Pay Periods",
            "40 Pay Periods",
            "41 Pay Periods",
            "42 Pay Periods",
            "43 Pay Periods",
            "44 Pay Periods",
            "45 Pay Periods",
            "46 Pay Periods",
            "47 Pay Periods",
            "48 Pay Periods",
            "49 Pay Periods",
            "50 Pay Periods",
            "51 Pay Periods",
            "Weekly"
          ],
          "type": "string"
        }
      }
    },
    "dtos.EmployeeEditableWage": {
      "description": "Employee wage.",
      "required": [
        "amount",
        "start_date",
        "type"
      ],
      "type": "object",
      "properties": {
        "type": {
          "description": "The type that matches the amount for the wage.",
          "enum": [
            "Salary",
            "Hourly"
          ],
          "type": "string"
        },
        "amount": {
          "format": "double",
          "description": "The amount that matches the type for the wage.",
          "type": "number"
        },
        "start_date": {
          "description": "The start date of the wage, inclusive.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "The end date of the wage, inclusive.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "reason": {
          "description": "An optional reason or comment for the wage.",
          "type": "string"
        },
        "category": {
          "description": "Category for the wage.",
          "enum": [
            "Compensation",
            "Base + Bonus",
            "Base + Commission",
            "Base + Bonus + Commission",
            "Annual Contract",
            "W2 1 Year Average",
            "W2 2 Year Average",
            "W2 3 Year Average",
            "Custom"
          ],
          "type": "string"
        }
      }
    },
    "dtos.EmployeeFormLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.EmployeeI9": {
      "type": "object",
      "properties": {
        "employee_id": {
          "description": "The employee id.",
          "type": "string"
        },
        "i9s": {
          "description": "The employee I9s.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.I9"
          }
        }
      }
    },
    "dtos.EmployeeLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.EmployeeLinks": {
      "required": [
        "href"
      ],
      "type": "object",
      "properties": {
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.EmployeePatch": {
      "type": "object",
      "properties": {
        "eid": {
          "description": "External identifier for importing purposes. Auto-assigned if not provided.",
          "type": "string"
        },
        "payroll_id": {
          "description": "External Payroll Id.",
          "type": "string"
        },
        "type": {
          "description": "Type",
          "enum": [
            "Full-Time",
            "Part-Time",
            "Variable-Hour",
            "Contractor",
            "Seasonal",
            "Intern"
          ],
          "type": "string"
        },
        "status": {
          "description": "Status.",
          "enum": [
            "Active",
            "Leave of Absence",
            "COBRA",
            "Terminated",
            "Resigned",
            "Deceased",
            "Retired",
            "Applicant",
            "Test"
          ],
          "type": "string"
        },
        "status_effective_date": {
          "description": "The effective date of the status change, only required for status updates.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "status_reason": {
          "description": "The reason recorded for the status change, only required for status updates.",
          "type": "string"
        },
        "termination_type": {
          "description": "Type of termination, only required when status is terminated.",
          "enum": [
            "Involuntary",
            "Voluntary",
            "Gross Misconduct"
          ],
          "type": "string"
        },
        "first_name": {
          "description": "First Name.",
          "type": "string"
        },
        "middle_name": {
          "description": "Middle Name.",
          "type": "string"
        },
        "last_name": {
          "description": "Last Name.",
          "type": "string"
        },
        "home_address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "email": {
          "description": "Email Address.",
          "type": "string"
        },
        "birth_date": {
          "description": "Date of Birth.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "gender": {
          "description": "Gender.",
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "personal_email": {
          "description": "Personal Email Address.",
          "type": "string"
        },
        "home_phone": {
          "description": "Home Phone Number.",
          "type": "string"
        },
        "mobile_phone": {
          "description": "Mobile Phone Number.",
          "type": "string"
        },
        "work_phone": {
          "description": "Work Phone Number.",
          "type": "string"
        },
        "marital": {
          "description": "Marital Status.",
          "enum": [
            "",
            "Single",
            "Married",
            "Divorced",
            "Domestic Partner",
            "Legally Separated",
            "Widowed"
          ],
          "type": "string"
        },
        "hire_date": {
          "description": "If the employee is not terminated, the latest HireDate is returned, otherwise the employee's OriginalHireDate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "job_title": {
          "description": "The employee's job title.",
          "type": "string"
        },
        "payroll_group": {
          "description": "Payroll Group.",
          "type": "string"
        },
        "department": {
          "description": "Department.",
          "type": "string"
        },
        "location": {
          "description": "Employment location name.",
          "type": "string"
        },
        "job_class": {
          "description": "Job class name.",
          "type": "string"
        },
        "division": {
          "description": "Division name.",
          "type": "string"
        },
        "hours": {
          "format": "double",
          "description": "Hours.",
          "type": "number"
        },
        "pay_cycle": {
          "description": "Pay Cycle.",
          "enum": [
            "Annually",
            "2 Pay Periods",
            "3 Pay Periods",
            "4 Pay Periods",
            "5 Pay Periods",
            "6 Pay Periods",
            "7 Pay Periods",
            "8 Pay Periods",
            "9 Pay Periods",
            "10 Pay Periods",
            "11 Pay Periods",
            "Monthly",
            "13 Pay Periods",
            "14 Pay Periods",
            "15 Pay Periods",
            "16 Pay Periods",
            "17 Pay Periods",
            "18 Pay Periods",
            "19 Pay Periods",
            "20 Pay Periods",
            "21 Pay Periods",
            "22 Pay Periods",
            "23 Pay Periods",
            "Semi-Monthly",
            "25 Pay Periods",
            "Bi-Weekly",
            "27 Pay Periods",
            "28 Pay Periods",
            "29 Pay Periods",
            "30 Pay Periods",
            "31 Pay Periods",
            "32 Pay Periods",
            "33 Pay Periods",
            "34 Pay Periods",
            "35 Pay Periods",
            "36 Pay Periods",
            "37 Pay Periods",
            "38 Pay Periods",
            "39 Pay Periods",
            "40 Pay Periods",
            "41 Pay Periods",
            "42 Pay Periods",
            "43 Pay Periods",
            "44 Pay Periods",
            "45 Pay Periods",
            "46 Pay Periods",
            "47 Pay Periods",
            "48 Pay Periods",
            "49 Pay Periods",
            "50 Pay Periods",
            "51 Pay Periods",
            "Weekly"
          ],
          "type": "string"
        }
      }
    },
    "dtos.EmployeeWage": {
      "required": [
        "category",
        "employee_id",
        "last_modified",
        "overtime_is_exempt",
        "paycycle_periods",
        "rate_overtime",
        "rate_regular",
        "wage_id",
        "wage_start_date",
        "wage_type"
      ],
      "type": "object",
      "properties": {
        "wage_id": {
          "description": "The wage id.",
          "type": "string"
        },
        "employee_id": {
          "description": "The employee id.",
          "type": "string"
        },
        "wage_start_date": {
          "description": "The wage start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "wage_end_date": {
          "description": "The wage end date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "wage_type": {
          "description": "The wage type.",
          "enum": [
            "Salary",
            "Hourly"
          ],
          "type": "string"
        },
        "paycycle_periods": {
          "format": "int32",
          "description": "The number of pay periods per year for the employee. Possible values are 1-52.",
          "type": "integer"
        },
        "overtime_is_exempt": {
          "description": "False for overtime employees.",
          "type": "boolean"
        },
        "rate_regular": {
          "format": "double",
          "description": "The regularly paid rate for the employee.  This amount represents the hourly rate for hourly employees and per pay period amount for salaried employees.",
          "type": "number"
        },
        "rate_overtime": {
          "format": "double",
          "description": "The overtime rate for the employee.",
          "type": "number"
        },
        "category": {
          "enum": [
            "Compensation",
            "Base + Bonus",
            "Base + Commission",
            "Base + Bonus + Commission",
            "Annual Contract",
            "W2 1 Year Average",
            "W2 2 Year Average",
            "W2 3 Year Average",
            "Custom"
          ],
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The date the record was last modified in Ease.",
          "type": "string"
        }
      }
    },
    "dtos.Enrollment": {
      "required": [
        "costs",
        "coverage_tier",
        "coverages",
        "created_on",
        "deduction_periods",
        "effective_date",
        "employee_id",
        "is_terminated",
        "last_modified_on",
        "life_event",
        "life_event_date",
        "original_effective_date",
        "plan_id",
        "policy_number",
        "rates",
        "signature_date",
        "sub_group_number"
      ],
      "type": "object",
      "properties": {
        "effective_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "signature_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "plan_id": {
          "type": "string"
        },
        "employee_id": {
          "type": "string"
        },
        "rates": {
          "description": "Rates associated with this Enrollment.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/0.KeyValuePair[EnrollmentRateType,Decimal]"
          }
        },
        "costs": {
          "description": "Costs associated with this Enrollment.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/0.KeyValuePair[EnrollmentCostType,Decimal]"
          }
        },
        "deduction_periods": {
          "format": "int32",
          "type": "integer"
        },
        "original_effective_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "policy_number": {
          "type": "string"
        },
        "sub_group_number": {
          "type": "string"
        },
        "coverage_tier": {
          "description": "The coverage tier of the enrollment. In the case of employee terminated enrollments, the tier will always be EE.",
          "enum": [
            "Employee Only",
            "Employee + 1 Child",
            "Employee + 2 Children",
            "Employee + 3 Children",
            "Employee + Spouse",
            "Employee + Spouse + 1 Child",
            "Employee + Spouse + 2 Children",
            "Employee + Spouse + 3 Children"
          ],
          "type": "string"
        },
        "is_terminated": {
          "type": "boolean"
        },
        "life_event": {
          "type": "string"
        },
        "life_event_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "coverages": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentCoverage"
          }
        },
        "last_modified_on": {
          "format": "date-time",
          "type": "string"
        },
        "created_on": {
          "format": "date-time",
          "type": "string"
        },
        "eligibility_id": {
          "description": "Ease internal eligibility id (read-only).",
          "type": "string"
        },
        "name": {
          "description": "The eligibility name (read-only).",
          "type": "string"
        },
        "benefit_compensation_type": {
          "description": "Benefit compensation type.",
          "type": "string"
        },
        "benefit_compensation_amount": {
          "format": "double",
          "description": "Benefit compensation amount.",
          "type": "number"
        },
        "is_voided": {
          "description": "Indicates whether or not this enrollment was voided.",
          "type": "boolean"
        },
        "costs_deduction_period": {
          "description": "The deduction period used to compute the costs.",
          "enum": [
            "Default",
            "Monthly",
            "Weekly",
            "PayCycle"
          ],
          "type": "string"
        },
        "plan": {
          "$ref": "#/definitions/dtos.PlanLink"
        },
        "carrier": {
          "type": "string"
        },
        "plan_type": {
          "description": "The plan type. Please see <a href=\"/api/docs/v2#section/Plan-Types\">Plan Types</a> for a complete list of supported values.",
          "type": "string"
        },
        "coverage_details_short_code": {
          "description": "Coverage details short code (read-only).",
          "type": "string"
        },
        "activity_date": {
          "description": "ActivityDate is used by compensation-based benefits.\r\nThe active compensation as of the ActivityDate is used as the basis to\r\ncalculate benefit amounts.\r\nActivityDate must be on or after the EffectiveDate and may be up\r\nto one day after the plan end date.\r\nActivityDates are, in general, the same value as EffectiveDates with\r\nsome exceptions:\r\n1) An existing enrollment is modified as a result of a life event\r\n2) Compensation change results in a benefit amount update\r\n3) Broker overrides the activitydate on a person's benefits page",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "change_date": {
          "description": "ChangeDate refers to the last substantive change made to an enrollment.\r\nA substantive change includes switching to a new plan, changing\r\nenrollment status, and adding a rate override.\r\nA examples of changes that would not be considered substantive would be\r\nmodifying an employee's \"waive reason\" and enabling direct deposit.",
          "type": "string",
          "example": "yyyy-MM-dd"
        }
      }
    },
    "dtos.EnrollmentBeneficiary": {
      "required": [
        "address",
        "birth_date",
        "created_on",
        "employee_id",
        "first_name",
        "gender",
        "home_phone",
        "id",
        "last_modified_on",
        "last_name",
        "middle_name",
        "mobile_phone",
        "percentage",
        "plan_type",
        "relationship",
        "type",
        "work_phone"
      ],
      "type": "object",
      "properties": {
        "employee_id": {
          "type": "string"
        },
        "plan_type": {
          "description": "The plan type. Please see <a href=\"/api/docs/v2#section/Plan-Types\">Plan Types</a> for a complete list of supported values.",
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "middle_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "ssn": {
          "type": "string"
        },
        "relationship": {
          "type": "string"
        },
        "birth_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "percentage": {
          "format": "double",
          "type": "number"
        },
        "gender": {
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "mobile_phone": {
          "type": "string"
        },
        "work_phone": {
          "type": "string"
        },
        "home_phone": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "last_modified_on": {
          "format": "date-time",
          "type": "string"
        },
        "created_on": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "dtos.EnrollmentCensusParameters": {
      "required": [
        "company_id",
        "employee_statuses",
        "employee_types",
        "include_dependents",
        "layout",
        "plan_ids",
        "view"
      ],
      "type": "object",
      "properties": {
        "layout": {
          "enum": [
            "Vertical",
            "Horizontal"
          ],
          "type": "string"
        },
        "view": {
          "enum": [
            "Current",
            "EffectiveAsOf",
            "SystemAsOf"
          ],
          "type": "string"
        },
        "include_dependents": {
          "type": "boolean"
        },
        "employee_statuses": {
          "type": "array",
          "items": {
            "enum": [
              "Active",
              "Leave of Absence",
              "COBRA",
              "Terminated",
              "Resigned",
              "Deceased",
              "Retired",
              "Applicant",
              "Test"
            ],
            "type": "string"
          }
        },
        "employee_types": {
          "type": "array",
          "items": {
            "enum": [
              "Full-Time",
              "Part-Time",
              "Variable-Hour",
              "Contractor",
              "Seasonal",
              "Intern",
              ""
            ],
            "type": "string"
          }
        },
        "plan_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "company_id": {
          "type": "string"
        }
      }
    },
    "dtos.EnrollmentChanges": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string"
        },
        "enrollment_details": {
          "$ref": "#/definitions/dtos.EnrollmentLink"
        },
        "new_value": {
          "$ref": "#/definitions/dtos.Enrollment"
        },
        "old_value": {
          "$ref": "#/definitions/dtos.Enrollment"
        },
        "change_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "dtos.EnrollmentCoverage": {
      "required": [
        "change_type",
        "created_on",
        "effective_date",
        "id",
        "is_cobra",
        "is_cobra_eligible",
        "last_coverage_date",
        "last_modified_on",
        "member_id",
        "status"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "member_id": {
          "description": "The member id that this coverage belongs to.",
          "type": "string"
        },
        "dependent_id": {
          "description": "The Dependent Id, if any, associated with this member.",
          "type": "string"
        },
        "effective_date": {
          "description": "The effective date of the coverage.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "termination_date": {
          "description": "The termination date of the coverage.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "is_cobra_eligible": {
          "description": "Indicates whether or not this termination is COBRA eligible.",
          "type": "boolean"
        },
        "status": {
          "description": "Indicates the coverage is enrollment status of the coverage.",
          "enum": [
            "",
            "Enrolled",
            "Waived"
          ],
          "type": "string"
        },
        "pcc_id": {
          "type": "string"
        },
        "pcc_name": {
          "type": "string"
        },
        "last_coverage_date": {
          "description": "The last date of coverage for the elected plan. This does not take into account eligibility changes.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "amount_approved": {
          "format": "double",
          "description": "The approved amount of the benefit.",
          "type": "number"
        },
        "amount_pending": {
          "format": "double",
          "description": "The pending amount of the benefit.",
          "type": "number"
        },
        "benefit_amount_approved": {
          "format": "double",
          "description": "The approved amount of the benefit if not a Contribution Plan.\r\nReturns 0 if the Plan is a Contribution Type Plan.",
          "type": "number"
        },
        "benefit_amount_pending": {
          "format": "double",
          "description": "The pending amount of the benefit if not a Contribution Plan.\r\nReturns 0 if the Plan is a Contribution Type Plan.",
          "type": "number"
        },
        "age_reduction_percentage": {
          "format": "double",
          "description": "The percent value of the reduction used for age reduced benefits.",
          "type": "number"
        },
        "change_type": {
          "description": "The reason for the coverage change.",
          "enum": [
            "Add",
            "Update",
            "Termination"
          ],
          "type": "string"
        },
        "is_cobra": {
          "description": "Indicates whether or not the employee was in COBRA status when this election was made.",
          "type": "boolean"
        },
        "is_voided": {
          "description": "Indicates whether or not this coverage was voided.",
          "type": "boolean"
        },
        "last_modified_on": {
          "format": "date-time",
          "type": "string"
        },
        "created_on": {
          "format": "date-time",
          "type": "string"
        },
        "life_event": {
          "$ref": "#/definitions/dtos.EnrollmentLifeEvent"
        }
      }
    },
    "dtos.EnrollmentDependent": {
      "required": [
        "address",
        "birth_date",
        "cobra_end_date",
        "cobra_event",
        "cobra_start_date",
        "created_on",
        "deleted_on",
        "employee_id",
        "first_name",
        "graduation_date",
        "home_phone",
        "id",
        "is_cobra",
        "is_disabled",
        "is_smoker",
        "is_student",
        "last_modified_on",
        "last_name",
        "middle_name",
        "mobile_phone",
        "relationship",
        "school",
        "ssn",
        "student_status",
        "work_phone"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "relationship": {
          "enum": [
            "Employee",
            "Dependent",
            "Spouse",
            "Child",
            "Spouse-Ex",
            "Child-Domestic Partner",
            "Child-Adopted",
            "Child-Foster",
            "Child-Grandchild",
            "Child-Step",
            "Child-Legal Guardian",
            "Domestic Partner",
            "Domestic Partner-Ex",
            ""
          ],
          "type": "string"
        },
        "employee_id": {
          "description": "The Id of the employee for this member.",
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "middle_name": {
          "type": "string"
        },
        "birth_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "home_phone": {
          "type": "string"
        },
        "work_phone": {
          "type": "string"
        },
        "mobile_phone": {
          "type": "string"
        },
        "ssn": {
          "type": "string"
        },
        "address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "sex": {
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "student_status": {
          "type": "string"
        },
        "school": {
          "type": "string"
        },
        "graduation_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "is_disabled": {
          "type": "boolean"
        },
        "is_smoker": {
          "type": "boolean"
        },
        "is_student": {
          "type": "boolean"
        },
        "is_cobra": {
          "type": "boolean"
        },
        "cobra_start_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "cobra_event": {
          "type": "string"
        },
        "cobra_end_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "last_modified_on": {
          "format": "date-time",
          "type": "string"
        },
        "created_on": {
          "format": "date-time",
          "type": "string"
        },
        "deleted_on": {
          "format": "date-time",
          "type": "string"
        },
        "is_different_address": {
          "type": "boolean"
        }
      }
    },
    "dtos.EnrollmentEmployee": {
      "required": [
        "address",
        "birth_date",
        "company_id",
        "created_on",
        "department",
        "department_id",
        "division",
        "division_id",
        "first_name",
        "id",
        "job_class",
        "job_class_id",
        "last_modified_on",
        "last_name",
        "location",
        "location_id",
        "middle_name",
        "pay_periods",
        "ssn",
        "status"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "Employee Id.",
          "type": "string"
        },
        "company_id": {
          "description": "Employee's Company Id.",
          "type": "string"
        },
        "first_name": {
          "description": "First Name.",
          "type": "string"
        },
        "last_name": {
          "description": "Last Name.",
          "type": "string"
        },
        "middle_name": {
          "description": "Middle Name.",
          "type": "string"
        },
        "birth_date": {
          "description": "Birth Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "ssn": {
          "description": "Social Security Number.",
          "type": "string"
        },
        "pay_periods": {
          "format": "int32",
          "description": "Number of Pay Periods.",
          "type": "integer"
        },
        "address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "gender": {
          "description": "Gender.",
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "race": {
          "description": "Race.",
          "type": "string"
        },
        "mobile_phone": {
          "description": "Mobile Phone Number.",
          "type": "string"
        },
        "home_phone": {
          "description": "Home Phone Number.",
          "type": "string"
        },
        "work_phone": {
          "description": "Work Phone Number.",
          "type": "string"
        },
        "eid": {
          "description": "External identifier for importing purposes. Auto-assigned if not provided.",
          "type": "string"
        },
        "medical_pcc_id": {
          "type": "string"
        },
        "medical_pcc_name": {
          "type": "string"
        },
        "dental_pcc_id": {
          "type": "string"
        },
        "dental_pcc_name": {
          "type": "string"
        },
        "ipa": {
          "type": "string"
        },
        "email": {
          "description": "Email.",
          "type": "string"
        },
        "personal_email": {
          "description": "Personal Email.",
          "type": "string"
        },
        "marital_status": {
          "description": "Marital Status.",
          "enum": [
            "",
            "Single",
            "Married",
            "Divorced",
            "Domestic Partner",
            "Legally Separated",
            "Widowed"
          ],
          "type": "string"
        },
        "language": {
          "description": "Language.",
          "type": "string"
        },
        "citizenship": {
          "description": "Citizenship.",
          "type": "string"
        },
        "custom_fields": {
          "description": "A list of custom field values for the employee.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/0.KeyValuePair[String,String]"
          }
        },
        "status": {
          "description": "Status of the employee, subject to changes over time.  Some examples, but not limited to, are: ['Active', 'Resigned', 'Deceased', 'Leave of Absence', 'COBRA']",
          "type": "string"
        },
        "status_effective_date": {
          "description": "Status Effective Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "status_reason": {
          "description": "Reason for Status Change.",
          "type": "string"
        },
        "termination_type": {
          "description": "Type of Termination, only required for terminations.",
          "enum": [
            "Involuntary",
            "Voluntary",
            "Gross Misconduct"
          ],
          "type": "string"
        },
        "latest_hire_date": {
          "description": "The employee's latest hiredate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "enrollment_status": {
          "description": "The employee's enrollment status.",
          "enum": [
            "Not Started",
            "In Progress",
            "Finished"
          ],
          "type": "string"
        },
        "location_id": {
          "description": "Location Id.",
          "type": "string"
        },
        "location": {
          "description": "Location Name.",
          "type": "string"
        },
        "division_id": {
          "description": "Division Id.",
          "type": "string"
        },
        "division": {
          "description": "Division Name.",
          "type": "string"
        },
        "department_id": {
          "description": "Department Id.",
          "type": "string"
        },
        "department": {
          "description": "Department Name.",
          "type": "string"
        },
        "job_class_id": {
          "description": "Job Class Id.",
          "type": "string"
        },
        "job_class": {
          "description": "Job Class.",
          "type": "string"
        },
        "type": {
          "description": "Employee Type.",
          "enum": [
            "Full-Time",
            "Part-Time",
            "Variable-Hour",
            "Contractor",
            "Seasonal",
            "Intern",
            ""
          ],
          "type": "string"
        },
        "job_title": {
          "description": "Job Title.",
          "type": "string"
        },
        "hours": {
          "format": "double",
          "type": "number"
        },
        "compensation_type": {
          "description": "Compensation Type.",
          "enum": [
            "Salary",
            "Hourly"
          ],
          "type": "string"
        },
        "compensation": {
          "format": "double",
          "description": "Compensation Amount.",
          "type": "number"
        },
        "compensation_start_date": {
          "description": "Current Compensation Start Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "compensation_end_date": {
          "description": "Current Compensation End Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "pay_cycle": {
          "description": "Pay Cycle.",
          "enum": [
            "Annually",
            "2 Pay Periods",
            "3 Pay Periods",
            "4 Pay Periods",
            "5 Pay Periods",
            "6 Pay Periods",
            "7 Pay Periods",
            "8 Pay Periods",
            "9 Pay Periods",
            "10 Pay Periods",
            "11 Pay Periods",
            "Monthly",
            "13 Pay Periods",
            "14 Pay Periods",
            "15 Pay Periods",
            "16 Pay Periods",
            "17 Pay Periods",
            "18 Pay Periods",
            "19 Pay Periods",
            "20 Pay Periods",
            "21 Pay Periods",
            "22 Pay Periods",
            "23 Pay Periods",
            "Semi-Monthly",
            "25 Pay Periods",
            "Bi-Weekly",
            "27 Pay Periods",
            "28 Pay Periods",
            "29 Pay Periods",
            "30 Pay Periods",
            "31 Pay Periods",
            "32 Pay Periods",
            "33 Pay Periods",
            "34 Pay Periods",
            "35 Pay Periods",
            "36 Pay Periods",
            "37 Pay Periods",
            "38 Pay Periods",
            "39 Pay Periods",
            "40 Pay Periods",
            "41 Pay Periods",
            "42 Pay Periods",
            "43 Pay Periods",
            "44 Pay Periods",
            "45 Pay Periods",
            "46 Pay Periods",
            "47 Pay Periods",
            "48 Pay Periods",
            "49 Pay Periods",
            "50 Pay Periods",
            "51 Pay Periods",
            "Weekly"
          ],
          "type": "string"
        },
        "benefit_eligible_date": {
          "description": "The date that the employee is eligible for benefits. This value overrides any open enrollment or new hire dates.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "hire_date": {
          "description": "If the employee is not terminated, the latest HireDate is returned, otherwise the employee's OriginalHireDate.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "termination_date": {
          "description": "Termination date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "cobra_date": {
          "description": "Cobra Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "retire_date": {
          "description": "Retire Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "is_smoker": {
          "description": "Returns true if Employee is a smoker.",
          "type": "boolean"
        },
        "is_disabled": {
          "description": "Returns true if Employee is disabled.",
          "type": "boolean"
        },
        "death_date": {
          "description": "Death Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "original_hire_date": {
          "description": "Original Hire Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "termination_reason": {
          "description": "Termination Reason.",
          "type": "string"
        },
        "is_cobra": {
          "description": "Returns true if Employee is in Cobra Status.",
          "type": "boolean"
        },
        "cobra_event": {
          "type": "string"
        },
        "cobra_end_date": {
          "description": "Date Cobra ends.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "salary": {
          "format": "double",
          "description": "Salary.",
          "type": "number"
        },
        "salary_effective_date": {
          "description": "Salary Effective Date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "last_modified_on": {
          "format": "date-time",
          "description": "Last Modified Date.",
          "type": "string"
        },
        "created_on": {
          "format": "date-time",
          "description": "Create Date.",
          "type": "string"
        }
      }
    },
    "dtos.EnrollmentHistoryParameters": {
      "required": [
        "employee_id"
      ],
      "type": "object",
      "properties": {
        "employee_id": {
          "type": "string"
        }
      }
    },
    "dtos.EnrollmentLifeEvent": {
      "description": "The event for the life or qualifying event.",
      "required": [
        "create_date",
        "date",
        "details",
        "last_modified_date",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The system name of the event.",
          "type": "string"
        },
        "details": {
          "description": "The user inputted details of the event.",
          "type": "string"
        },
        "date": {
          "description": "The effective date of the event.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "create_date": {
          "format": "date-time",
          "description": "The create timestamp of the event.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "last_modified_date": {
          "format": "date-time",
          "description": "The last modified timestamp of the event.",
          "type": "string",
          "example": "yyyy-MM-dd"
        }
      }
    },
    "dtos.EnrollmentLink": {
      "required": [
        "href"
      ],
      "type": "object",
      "properties": {
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.EnrollmentMember": {
      "required": [
        "dependents",
        "employee"
      ],
      "type": "object",
      "properties": {
        "employee": {
          "$ref": "#/definitions/dtos.EnrollmentEmployee"
        },
        "dependents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentDependent"
          }
        }
      }
    },
    "dtos.EnrollmentSubmission": {
      "type": "object",
      "properties": {
        "id": {
          "description": "The id of the enrollmet submission.",
          "type": "string"
        },
        "status": {
          "description": "The status of the enrollment submission.",
          "enum": [
            "Not Submitted",
            "Submitted",
            "Received",
            "Processed",
            "Missing Info",
            "Declined",
            "Processing",
            "Failed"
          ],
          "type": "string"
        },
        "company": {
          "$ref": "#/definitions/dtos.CompanyLink"
        },
        "created_by": {
          "$ref": "#/definitions/dtos.EmployeeLink"
        },
        "created": {
          "format": "date-time",
          "description": "The date and time the enrollment submission was created.",
          "type": "string"
        },
        "plans": {
          "description": "The plans selected for this enrollment submission.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanLink"
          }
        },
        "questionnaire": {
          "description": "The enrollment submission questionnaire.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/0.KeyValuePair[String,String]"
          }
        },
        "documents": {
          "description": "The documents attached to this enrollment submission.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.DocumentLink"
          }
        },
        "notes": {
          "description": "The notes attached to this enrollment submission.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentSubmissionNote"
          }
        }
      }
    },
    "dtos.EnrollmentSubmissionEditable": {
      "type": "object",
      "properties": {
        "status": {
          "description": "The status of the enrollment submission.",
          "enum": [
            "Not Submitted",
            "Submitted",
            "Received",
            "Processed",
            "Missing Info",
            "Declined",
            "Processing",
            "Failed"
          ],
          "type": "string"
        }
      }
    },
    "dtos.EnrollmentSubmissionNote": {
      "type": "object",
      "properties": {
        "note": {
          "description": "The enrollment submission note content.",
          "type": "string"
        },
        "created_by": {
          "$ref": "#/definitions/dtos.EmployeeLink"
        },
        "created": {
          "format": "date-time",
          "description": "The date and time the not was created.",
          "type": "string"
        }
      }
    },
    "dtos.FederalW4": {
      "type": "object",
      "properties": {
        "filing_status": {
          "description": "[S: Single, M: Married, S: Married but withhold as single, H: Head of Household]",
          "enum": [
            "S",
            "M",
            "H"
          ],
          "type": "string"
        },
        "is_exempt": {
          "type": "boolean"
        },
        "two_jobs_similar_pay": {
          "description": "This checkbox corresponds to Step 2(c) on the 2020 Form W-4.",
          "type": "boolean"
        },
        "children_under17": {
          "format": "int32",
          "description": "This int corresponds to the first input in Step 3 on the 2020 Form W-4.",
          "type": "integer"
        },
        "other_dependents": {
          "format": "int32",
          "description": "This int corresponds to the second input in Step 3 on the 2020 Form W-4.",
          "type": "integer"
        },
        "other_tax_credit": {
          "format": "double",
          "description": "This number corresponds to the adjustment a person would make to Step 3 after computing the tax credit values for their dependents.  Page 2 of the 2020 Form W-4 gives instructions to the employee how to calculate and adjust the value for Step 3.",
          "type": "number"
        },
        "dependent_total_amount": {
          "format": "double",
          "description": "This number corresponds to the Step 3 field on the 2020 Form W-4.  It is the sum of the child tax credits, other dependent tax credits, and tax credit amounts",
          "type": "number"
        },
        "other_income": {
          "format": "double",
          "description": "This number corresponds to the Step 4(a) field on the 2020 Form W-4.",
          "type": "number"
        },
        "deductions": {
          "format": "double",
          "description": "This number corresponds to the Step 4(b) field on the 2020 Form W-4.",
          "type": "number"
        },
        "extra_withholding": {
          "format": "double",
          "description": "This number corresponds to the Step 4(c) field on the 2020 Form W-4.",
          "type": "number"
        },
        "additional_withholding_type": {
          "description": "Only currently supported value: \"Dollar\"",
          "type": "string"
        },
        "additional_withholding": {
          "format": "double",
          "type": "number"
        }
      }
    },
    "dtos.FormGenerationRequest": {
      "description": "The request to generate forms with a callback URL.",
      "required": [
        "callback_url"
      ],
      "type": "object",
      "properties": {
        "callback_url": {
          "description": "The URL that a notification will be sent to once the report is completed. The payload will contain the URL of the report for retrieval.\r\nExample payload: { \"url\": \"https://secure.ease.com/v2/files?foo=bar\", \"status\": \"Success\" }",
          "type": "string"
        },
        "employee_ids": {
          "description": "The employees to limit the forms generation to. Optional.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "carrier_ids": {
          "description": "The carriers to limit the forms generation to. Optional.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "plan_ids": {
          "description": "The plans to limit the forms generation to. Optional.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "dtos.FullCensusParameters": {
      "required": [
        "company_id",
        "eligibilities",
        "employee_statuses",
        "employee_types",
        "include_dependents",
        "layout"
      ],
      "type": "object",
      "properties": {
        "layout": {
          "enum": [
            "Vertical",
            "Horizontal"
          ],
          "type": "string"
        },
        "include_dependents": {
          "type": "boolean"
        },
        "employee_statuses": {
          "type": "array",
          "items": {
            "enum": [
              "Active",
              "Leave of Absence",
              "COBRA",
              "Terminated",
              "Resigned",
              "Deceased",
              "Retired",
              "Applicant",
              "Test"
            ],
            "type": "string"
          }
        },
        "employee_types": {
          "type": "array",
          "items": {
            "enum": [
              "Full-Time",
              "Part-Time",
              "Variable-Hour",
              "Contractor",
              "Seasonal",
              "Intern",
              ""
            ],
            "type": "string"
          }
        },
        "eligibilities": {
          "type": "array",
          "items": {
            "enum": [
              "Locations",
              "Divisions",
              "Departments",
              "JobClasses"
            ],
            "type": "string"
          }
        },
        "company_id": {
          "type": "string"
        }
      }
    },
    "dtos.HoursTracked": {
      "required": [
        "employee_id",
        "from_date",
        "hours",
        "to_date",
        "type"
      ],
      "type": "object",
      "properties": {
        "employee_id": {
          "description": "Internal ID of the employee whose hours we want to update",
          "type": "string"
        },
        "type": {
          "description": "Type of hours being tracked",
          "type": "string"
        },
        "from_date": {
          "description": "Start date for hours tracked period",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "to_date": {
          "description": "End date for hours tracked period",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "hours": {
          "format": "double",
          "description": "Total number of hours tracked",
          "type": "number"
        }
      }
    },
    "dtos.I9": {
      "required": [
        "created",
        "download_url",
        "file_type",
        "last_modified",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of document",
          "type": "string"
        },
        "file_type": {
          "description": "Type of file",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "description": "The create datetime",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The last modified datetime",
          "type": "string"
        },
        "download_url": {
          "description": "Time constrained URL to document which expires after 20 minutes",
          "type": "string"
        }
      }
    },
    "dtos.JobClass": {
      "required": [
        "created",
        "id",
        "last_modified",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "company_id": {
          "description": "The company id.",
          "type": "string"
        },
        "name": {
          "description": "The object name.",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "description": "The create datetime.",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The last modified datetime.",
          "type": "string"
        }
      }
    },
    "dtos.JobClassLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.JobTitle": {
      "required": [
        "create_date",
        "id",
        "last_modified_date",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id",
          "type": "string"
        },
        "name": {
          "description": "The object name",
          "type": "string"
        },
        "create_date": {
          "description": "The create datetime",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "last_modified_date": {
          "description": "The last modified datetime",
          "type": "string",
          "example": "yyyy-MM-dd"
        }
      }
    },
    "dtos.JobTitleLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.Location": {
      "required": [
        "created",
        "id",
        "last_modified",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The id of the location.",
          "type": "string"
        },
        "name": {
          "description": "The name of the location.",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "description": "The datetime the location was created.",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The datetime the location was last modified.",
          "type": "string"
        },
        "addr1": {
          "description": "The Location Address 1.",
          "type": "string"
        },
        "addr2": {
          "description": "The Location Address 2.",
          "type": "string"
        },
        "city": {
          "description": "The Location City.",
          "type": "string"
        },
        "state": {
          "description": "The Location State.",
          "type": "string"
        },
        "zip": {
          "description": "The Location Zip.",
          "type": "string"
        },
        "county": {
          "description": "The Location County.",
          "type": "string"
        },
        "country": {
          "description": "The Location Country.",
          "enum": [
            "Afghanistan",
            "Albania",
            "Algeria",
            "Argentina",
            "Armenia",
            "Australia",
            "Austria",
            "Azerbaijan",
            "Bahrain",
            "Bangladesh",
            "Belarus",
            "Belgium",
            "Belize",
            "Benin",
            "Bhutan",
            "Bolivarian Republic of Venezuela",
            "Bolivia",
            "Bosnia and Herzegovina",
            "Botswana",
            "Brazil",
            "Brunei Darussalam",
            "Bulgaria",
            "Burundi",
            "Cambodia",
            "Cameroon",
            "Canada",
            "Caribbean",
            "Chile",
            "Colombia",
            "Congo (DRC)",
            "Costa Rica",
            "Côte d'Ivoire",
            "Croatia",
            "Cuba",
            "Cyprus",
            "Czech Republic",
            "Denmark",
            "Djibouti",
            "Dominican Republic",
            "Ecuador",
            "Egypt",
            "El Salvador",
            "Eritrea",
            "Estonia",
            "Ethiopia",
            "Faroe Islands",
            "Fiji",
            "Finland",
            "France",
            "Gambia",
            "Georgia",
            "Germany",
            "Ghana",
            "Greece",
            "Greenland",
            "Guatemala",
            "Haiti",
            "Honduras",
            "Hong Kong S.A.R.",
            "Hungary",
            "Iceland",
            "India",
            "Indonesia",
            "Iran",
            "Iraq",
            "Ireland",
            "Islamic Republic of Pakistan",
            "Israel",
            "Italy",
            "Jamaica",
            "Japan",
            "Jordan",
            "Kazakhstan",
            "Kenya",
            "Korea",
            "Kuwait",
            "Kyrgyzstan",
            "Lao P.D.R.",
            "Latin America",
            "Latvia",
            "Lebanon",
            "Liberia",
            "Libya",
            "Liechtenstein",
            "Lithuania",
            "Luxembourg",
            "Macao S.A.R.",
            "Malaysia",
            "Maldives",
            "Mali",
            "Malta",
            "Mexico",
            "Moldova",
            "Mongolia",
            "Montenegro",
            "Morocco",
            "Myanmar",
            "Namibia",
            "Nepal",
            "Netherlands",
            "New Zealand",
            "Nicaragua",
            "Nigeria",
            "North Macedonia",
            "Norway",
            "Oman",
            "Palestine",
            "Panama",
            "Paraguay",
            "People's Republic of China",
            "Peru",
            "Philippines",
            "Poland",
            "Portugal",
            "Principality of Monaco",
            "Puerto Rico",
            "Qatar",
            "Réunion",
            "Romania",
            "Russia",
            "Rwanda",
            "Saudi Arabia",
            "Senegal",
            "Serbia",
            "Sierra Leone",
            "Singapore",
            "Slovakia",
            "Slovenia",
            "Somalia",
            "South Africa",
            "Spain",
            "Sri Lanka",
            "Sudan",
            "Sweden",
            "Switzerland",
            "Syria",
            "Taiwan",
            "Tajikistan",
            "Tanzania",
            "Thailand",
            "Trinidad and Tobago",
            "Tunisia",
            "Turkey",
            "Turkmenistan",
            "U.A.E.",
            "Uganda",
            "Ukraine",
            "United Kingdom",
            "United States",
            "Uruguay",
            "Uzbekistan",
            "Vietnam",
            "Yemen",
            "Zambia",
            "Zimbabwe"
          ],
          "type": "string"
        },
        "phone": {
          "description": "The phone number of the location.",
          "type": "string"
        },
        "ein": {
          "description": "The EIN of the location.",
          "type": "string"
        },
        "fax": {
          "description": "The fax number of the location.",
          "type": "string"
        },
        "headquarters": {
          "description": "Is this the headquarters for the company?",
          "type": "boolean"
        }
      }
    },
    "dtos.LocationLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.ManageChangeDetail": {
      "type": "object",
      "properties": {
        "employee": {
          "$ref": "#/definitions/dtos.EnrollmentEmployee"
        },
        "dependents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentDependent"
          }
        },
        "enrollment_changes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EnrollmentChanges"
          }
        },
        "profile_changes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.ProfileChange"
          }
        },
        "forms": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeFormLink"
          }
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.DocumentLink"
          }
        },
        "changed_by": {
          "description": "A collection of the types of modifiers who made changes.",
          "type": "array",
          "items": {
            "enum": [
              "Ease-System",
              "Ease-Staff",
              "Carrier",
              "Partner",
              "Broker",
              "Employer"
            ],
            "type": "string"
          }
        },
        "change_types": {
          "type": "array",
          "items": {
            "enum": [
              "New Hire",
              "Termination",
              "Qualifying Event",
              "Member Profile",
              "Enrollments"
            ],
            "type": "string"
          }
        },
        "detail_url": {
          "description": "The URL to call for the manage changes.",
          "type": "string"
        }
      }
    },
    "dtos.ManageChangeSummary": {
      "type": "object",
      "properties": {
        "company": {
          "$ref": "#/definitions/dtos.CompanyLink"
        },
        "employee": {
          "$ref": "#/definitions/dtos.EmployeeLink"
        },
        "changed_by": {
          "description": "A collection of the types of modifiers who made changes.",
          "type": "array",
          "items": {
            "enum": [
              "Ease-System",
              "Ease-Staff",
              "Carrier",
              "Partner",
              "Broker",
              "Employer"
            ],
            "type": "string"
          }
        },
        "change_types": {
          "type": "array",
          "items": {
            "enum": [
              "New Hire",
              "Termination",
              "Qualifying Event",
              "Member Profile",
              "Enrollments"
            ],
            "type": "string"
          }
        },
        "detail_url": {
          "description": "The URL to call for the manage changes.",
          "type": "string"
        }
      }
    },
    "dtos.NoteEditable": {
      "type": "object",
      "properties": {
        "text": {
          "description": "The text for the note.",
          "type": "string"
        },
        "type": {
          "description": "The type of note. The default is \"General\".",
          "enum": [
            "General",
            "Submission"
          ],
          "type": "string"
        },
        "reference_id": {
          "description": "The id of the object to attach this note to. Optional.",
          "type": "string"
        }
      }
    },
    "dtos.OpenEnrollmentChangesParameters": {
      "required": [
        "company_id",
        "plan_ids"
      ],
      "type": "object",
      "properties": {
        "plan_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "company_id": {
          "type": "string"
        }
      }
    },
    "dtos.PartnerConnection": {
      "description": "The connection status between a partner and a company.",
      "type": "object",
      "properties": {
        "partner_id": {
          "description": "The id of the partner.",
          "type": "string"
        },
        "company_id": {
          "description": "The id of the company.",
          "type": "string"
        },
        "status": {
          "description": "The status of the connection.",
          "enum": [
            "Pending",
            "Approved",
            "Testing",
            "Denied",
            "Inactive"
          ],
          "type": "string"
        }
      }
    },
    "dtos.PartnerConnectionEditable": {
      "type": "object",
      "properties": {
        "status": {
          "description": "The status of the connection.",
          "enum": [
            "Pending",
            "Approved",
            "Testing",
            "Denied",
            "Inactive"
          ],
          "type": "string"
        },
        "partner_teams": {
          "description": "A list of partner team names to assign to this connection.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "dtos.PayGroup": {
      "required": [
        "created",
        "id",
        "last_modified",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id",
          "type": "string"
        },
        "name": {
          "description": "The object name",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "description": "The create datetime",
          "type": "string"
        },
        "last_modified": {
          "format": "date-time",
          "description": "The the last modified datetime",
          "type": "string"
        }
      }
    },
    "dtos.PayrollGroupIdName": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "name": {
          "description": "The name of the object.",
          "type": "string"
        }
      }
    },
    "dtos.Plan": {
      "type": "object",
      "properties": {
        "id": {
          "description": "The Ease plan id.",
          "type": "string"
        },
        "carrier": {
          "$ref": "#/definitions/dtos.Carrier"
        },
        "group_number": {
          "description": "The plan group number.",
          "type": "string"
        },
        "contribution_type": {
          "description": "The plan contribution type.",
          "type": "string"
        },
        "name": {
          "description": "The plan name.",
          "type": "string"
        },
        "admin_name": {
          "description": "The plan admin name.",
          "type": "string"
        },
        "import_id": {
          "description": "The plan import id.",
          "type": "string"
        },
        "type": {
          "description": "The plan type. Please see <a href=\"/api/docs/v2#section/Plan-Types\">Plan Types</a> for a complete list of supported values.",
          "type": "string"
        },
        "start_date": {
          "description": "The plan start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "The plan end date. The date is inclusive.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "created": {
          "description": "The plan created date / time.",
          "type": "string"
        },
        "cobra_eligibility": {
          "description": "The Cobra eligibility setting.  The default is \"Not Eligible\".",
          "type": "string"
        },
        "provides_minimum_value": {
          "description": "Does this plan provide minimum value?",
          "type": "boolean"
        },
        "provides_creditable_coverage": {
          "description": "Does this plan provide creditable coverage?",
          "type": "boolean"
        },
        "self_funded": {
          "description": "Is this plan self-funded?",
          "type": "boolean"
        },
        "is_open_enrollment_plan": {
          "description": "Is this plan a current Open Enrollment option?",
          "type": "boolean"
        },
        "benefits": {
          "$ref": "#/definitions/dtos.PlanBenefits"
        },
        "documents": {
          "description": "Any plan specific linkable documents.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanDocument"
          }
        },
        "eligibilities": {
          "description": "Plan eligibilities with their respective Rate Types.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Eligibility"
          }
        },
        "plan_stats": {
          "$ref": "#/definitions/dtos.PlanStats"
        },
        "connect_status": {
          "description": "The plan connect status.",
          "enum": [
            "Not Connected",
            "Pending",
            "Pending (New)",
            "Ease Review",
            "Ease Review (New)",
            "Carrier Review",
            "Connected",
            "Self-Bill",
            "EOI",
            "EOI & Self-Bill",
            "Disabled",
            "Broker Submitted",
            "Suspended"
          ],
          "type": "string"
        },
        "external_plan_id": {
          "description": "The plan external id.",
          "type": "string"
        },
        "previous_plan_id": {
          "description": "The previous plan id.",
          "type": "string"
        }
      }
    },
    "dtos.PlanBenefits": {
      "type": "object",
      "properties": {
        "deductible": {
          "type": "string"
        },
        "office_visit": {
          "type": "string"
        },
        "inpatient": {
          "type": "string"
        },
        "outpatient": {
          "type": "string"
        },
        "emergency_room": {
          "type": "string"
        },
        "rx": {
          "type": "string"
        },
        "lab_x_ray": {
          "type": "string"
        },
        "out_of_network": {
          "type": "string"
        },
        "out_of_pocket_max": {
          "type": "string"
        },
        "preventive": {
          "type": "string"
        },
        "basic": {
          "type": "string"
        },
        "major": {
          "type": "string"
        },
        "ortho": {
          "type": "string"
        },
        "annual_benefit_max": {
          "type": "string"
        },
        "exam": {
          "type": "string"
        },
        "materials": {
          "type": "string"
        },
        "eye_glass_lenses": {
          "type": "string"
        },
        "frame_allowance": {
          "type": "string"
        },
        "contact_lenses": {
          "type": "string"
        },
        "exam_service_interval": {
          "type": "string"
        },
        "lenses_and_frame_service_interval": {
          "type": "string"
        },
        "coinsurance": {
          "type": "string"
        },
        "other": {
          "type": "string"
        },
        "ee_benefit_type": {
          "description": "Benefit calculation type (i.e., Flat Amount, X Earnings, etc)",
          "enum": [
            "NONE",
            "Flat Amount",
            "X Earnings",
            "% Employee",
            "Increments",
            "Custom",
            "Custom (Based Off Employee Selection)"
          ],
          "type": "string"
        },
        "is_volume_plan": {
          "description": "Denotes that the plan is a volume based plan",
          "type": "boolean"
        },
        "volume_basis_percent": {
          "description": "The volumne basis percent, based on earnings, for earnings based plans",
          "type": "string"
        },
        "ee_earnings_min": {
          "description": "The minimum electable benefit amount for earnings based plans",
          "type": "string"
        },
        "ee_earnings_max": {
          "description": "The maximum electable benefit amount for earnings based plans",
          "type": "string"
        },
        "ee_increment_from": {
          "description": "The minimum electable benefit amount for increment based plans",
          "type": "string"
        },
        "ee_increment_to": {
          "description": "The maximum electable benefit amount for increment based plans",
          "type": "string"
        },
        "ee_increment_by": {
          "description": "The benefit increase increment for increment based plans",
          "type": "string"
        },
        "ee_flat_amount": {
          "description": "The electable amount for a flat amount plane",
          "type": "string"
        },
        "ee_guaranteed_issue": {
          "description": "The Guaranteed Issue of a plan",
          "type": "string"
        },
        "sp_percentage": {
          "description": "The percentage paid for spouse",
          "type": "string"
        },
        "ch_percentage": {
          "description": "The percent paid for child(ren)",
          "type": "string"
        },
        "request_primary_care_provider_id": {
          "description": "Whether or not the plan requires a primary care provider id.",
          "type": "boolean"
        },
        "request_primary_care_provider_name": {
          "description": "Whether or not the plan requires a primary care provider name.",
          "type": "boolean"
        }
      }
    },
    "dtos.PlanCompany": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the company.",
          "type": "string"
        },
        "agent_email": {
          "description": "The email address of the agent for the company.",
          "type": "string"
        },
        "assign_agent_teams": {
          "description": "Indicates whether or not to assign the agent's team to this company. This value is only respected if an agent is found for the provided agent_email, otherwise it is ignored.",
          "type": "boolean"
        },
        "create_team_for_agent": {
          "description": "Indicates whether or not to always create a new team for the agent, if it doesn't already exist. The default is true.",
          "type": "boolean"
        },
        "ein": {
          "description": "The EIN of the company.",
          "type": "string"
        },
        "sic": {
          "description": "The SIC of the company.",
          "type": "string"
        },
        "default_pay_cycle_periods": {
          "format": "int32",
          "description": "The number of pay cycles for all employees per year, by default.  Accepted values are 1-52.",
          "type": "integer"
        },
        "locations": {
          "description": "All company locations",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanLocation"
          }
        },
        "carrier_settings": {
          "description": "Carrier specific metadata fields.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanCompany.CarrierSettings"
          }
        }
      }
    },
    "dtos.PlanCompany.CarrierSettings": {
      "type": "object",
      "properties": {
        "carrier": {
          "type": "string"
        },
        "field": {
          "type": "string"
        },
        "value": { }
      }
    },
    "dtos.PlanDocument": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The Id of the document.",
          "type": "string"
        },
        "name": {
          "description": "The name of the document.  This will be displayed to the user.",
          "type": "string"
        },
        "url": {
          "description": "The external link to the document.",
          "type": "string"
        },
        "requires_review": {
          "description": "Indicates whether document has to be reviewed by employee.",
          "type": "boolean"
        },
        "type": {
          "description": "Describes what kind of file is associated with this document. Please use \"Web Address\" for this field when adding documents to plans.",
          "type": "string"
        },
        "system_type": {
          "description": "Describes the purpose of the document. Please use \"Plan\" for this field when adding documents to plans.",
          "type": "string"
        }
      }
    },
    "dtos.PlanDocumentEditable": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the document.  This will be displayed to the user.",
          "type": "string"
        },
        "url": {
          "description": "The external link to the document.",
          "type": "string"
        },
        "requires_review": {
          "description": "Indicates whether document has to be reviewed by employee.",
          "type": "boolean"
        },
        "type": {
          "description": "Describes what kind of file is associated with this document. Please use \"Web Address\" for this field when adding documents to plans.",
          "type": "string"
        },
        "system_type": {
          "description": "Describes the purpose of the document. Please use \"Plan\" for this field when adding documents to plans.",
          "type": "string"
        }
      }
    },
    "dtos.PlanEditable": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the plan.",
          "type": "string"
        },
        "admin_name": {
          "description": "The admin name of the plan.",
          "type": "string"
        },
        "external_plan_id": {
          "description": "The plan external id.",
          "type": "string"
        },
        "deductible_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "office_visit_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "inpatient_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "outpatient_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "emergency_room_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "rx_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "lab_x_ray_maximum": {
          "description": "Medical plans only.",
          "type": "string"
        },
        "require_ipa": {
          "description": "Require Independent Practice Association.",
          "type": "boolean"
        },
        "request_obgyn": {
          "description": "Request OB/GYN Name or Number.",
          "type": "boolean"
        },
        "is_aca_minimum_value": {
          "description": "Provides Minimum Value ACA Coverage.",
          "type": "boolean"
        },
        "provides_creditable_coverage": {
          "description": "Provides Medicare Part D Creditable Coverage.",
          "type": "boolean"
        },
        "is_self_funded": {
          "description": "Self-Funded Plan.",
          "type": "boolean"
        },
        "preventive_maximium": {
          "description": "Dental plans only.",
          "type": "string"
        },
        "basic_maximium": {
          "description": "Dental plans only.",
          "type": "string"
        },
        "major_maximium": {
          "description": "Dental plans only.",
          "type": "string"
        },
        "ortho_maximium": {
          "description": "Dental plans only.",
          "type": "string"
        },
        "annual_benefit_maximium": {
          "description": "Dental plans only.",
          "type": "string"
        },
        "out_of_network_maximum": {
          "type": "string"
        },
        "out_of_pocket_maximum": {
          "type": "string"
        },
        "request_pcc_id": {
          "description": "Require Primary Care Provider Id.",
          "type": "boolean"
        },
        "request_pcc_name": {
          "description": "Require Primary Care Provider Name.",
          "type": "boolean"
        },
        "allow_pcp_auto_assign": {
          "description": "Allow PCP Auto-Assign.",
          "type": "boolean"
        },
        "exam": {
          "type": "string"
        },
        "materials": {
          "type": "string"
        },
        "eye_glass_lenses": {
          "type": "string"
        },
        "frame_allowance": {
          "type": "string"
        },
        "contact_lenses": {
          "type": "string"
        },
        "exam_service_interval": {
          "type": "string"
        },
        "lenses_and_frame_service_interval": {
          "type": "string"
        },
        "coinsurance": {
          "type": "string"
        },
        "other": {
          "type": "string"
        }
      }
    },
    "dtos.PlanEligibility": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the eligibility.",
          "type": "string"
        },
        "policy_number": {
          "type": "string"
        },
        "entry_date": {
          "enum": [
            "",
            "First of the Month",
            "First of the Month Next Following",
            "15th of the Month",
            "Immediate",
            "Semi-Annual",
            "Quarterly",
            "First of the Month (Coinciding)"
          ],
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "job_classes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "departments": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "divisions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ineligible_employees": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "scheduled_hours_min": {
          "format": "double",
          "description": "The minimum number of scheduled hours to be eligible, inclusive.",
          "type": "number"
        },
        "scheduled_hours_max": {
          "format": "double",
          "description": "The maximum number of scheduled hours to be eligible, inclusive.",
          "type": "number"
        },
        "age_determination": {
          "description": "The age determination for the plan.  The default is \"Plan Anniversary\".",
          "enum": [
            "Plan Anniversary",
            "Plan Anniversary (Ignore Hire Date)",
            "Current Year - Birth Year",
            "End of the Month",
            "First of the Month",
            "First of the Year",
            "Original Effective Date"
          ],
          "type": "string"
        },
        "waiting_period": {
          "format": "int32",
          "description": "The eligibility's waiting period.",
          "type": "integer"
        },
        "waiting_period_type": {
          "description": "The type of waiting period.",
          "enum": [
            "Days",
            "Months",
            ""
          ],
          "type": "string"
        },
        "contributions": {
          "$ref": "#/definitions/dtos.EligibilityContributions"
        }
      }
    },
    "dtos.PlanImport": {
      "required": [
        "name",
        "plan_id",
        "start_date",
        "type"
      ],
      "type": "object",
      "properties": {
        "plan_id": {
          "description": "The plan id.",
          "type": "string"
        },
        "previous_plan_id": {
          "description": "The Ease previous plan id. A Plan of type 'Legal' cannot have a Previous Plan. Any previous plan must be from the current company, must be of the same type, must not be deleted, and must have the start date before the current plan start date.",
          "type": "string"
        },
        "carrier": {
          "description": "The plan carrier name.",
          "type": "string"
        },
        "name": {
          "description": "The plan name.",
          "type": "string"
        },
        "admin_name": {
          "description": "The plan admin name.",
          "type": "string"
        },
        "type": {
          "description": "The plan type. Please see <a href=\"/api/docs/v2#section/Plan-Types\">Plan Types</a> for a complete list of supported values.",
          "type": "string"
        },
        "start_date": {
          "description": "The plan start date.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "The plan end date. The date is inclusive.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "instructions": {
          "description": "The plan instructions.",
          "type": "string"
        },
        "deduction_periods": {
          "format": "int32",
          "description": "The number of deduction cycles for the plan per year.  Accepted values are 1-52.",
          "type": "integer"
        },
        "benefits": {
          "$ref": "#/definitions/dtos.PlanBenefits"
        },
        "cobra_eligibility": {
          "description": "The Cobra eligibility setting.  The default is \"Not Eligible\".",
          "enum": [
            "Not Eligible",
            "Eligible - 100%",
            "Eligible - 102%",
            "Eligible - 110%",
            "Eligible - 105%"
          ],
          "type": "string"
        },
        "documents": {
          "description": "Any plan specific linkable documents.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanDocumentEditable"
          }
        },
        "eligibilities": {
          "description": "Plan eligibilities.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanEligibility"
          }
        },
        "carrier_fields": {
          "$ref": "#/definitions/dtos.PlanImport.CarrierFields"
        },
        "rates": {
          "$ref": "#/definitions/dtos.EligibilityRates"
        },
        "form_ids": {
          "description": "The plan ease form ids, for example \"ca_anthem_sg_202101\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "dtos.PlanImport.CarrierFields": {
      "type": "object",
      "properties": {
        "plan_code": {
          "description": "Covered California: HIOS Id.",
          "type": "string"
        },
        "plan_type_code": {
          "description": "Covered California: Plan Level.",
          "type": "string"
        },
        "supplemental_identifier": {
          "description": "Covered California: Reference Health Insurance Carrier.",
          "type": "string"
        }
      }
    },
    "dtos.PlanImport.PlansResult": {
      "description": "The Create Plans response.",
      "type": "object",
      "properties": {
        "company_id": {
          "description": "The id of the company, whether new or existing.",
          "type": "string"
        },
        "plans": {
          "description": "A mapping of the original plan ids and the new Ease import ids per plan.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlansResult.PlanInfo"
          }
        },
        "employees": {
          "description": "A list that maps the provided employee id to our Ease generated employee id.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/controllers.EmployeeResult"
          }
        }
      }
    },
    "dtos.PlanLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "start_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "type": {
          "type": "string"
        },
        "carrier": {
          "$ref": "#/definitions/dtos.Carrier"
        },
        "connect_status": {
          "enum": [
            "Not Connected",
            "Pending",
            "Pending (New)",
            "Ease Review",
            "Ease Review (New)",
            "Carrier Review",
            "Connected",
            "Self-Bill",
            "EOI",
            "EOI & Self-Bill",
            "Disabled",
            "Broker Submitted",
            "Suspended"
          ],
          "type": "string"
        },
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.PlanLocation": {
      "required": [
        "address",
        "location_id",
        "name"
      ],
      "type": "object",
      "properties": {
        "location_id": {
          "description": "The id of the location.",
          "type": "string"
        },
        "name": {
          "description": "The name of the location.",
          "type": "string"
        },
        "address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "phone": {
          "description": "The phone number of the location.",
          "type": "string"
        },
        "fax": {
          "description": "The fax number of the location.",
          "type": "string"
        },
        "headquarters": {
          "description": "A boolean representing whether or not this location is the headquarters for the company.",
          "type": "boolean"
        }
      }
    },
    "dtos.PlanMember": {
      "required": [
        "employee_id",
        "first_name",
        "last_name",
        "member_id",
        "relationship"
      ],
      "type": "object",
      "properties": {
        "member_id": {
          "description": "Id of the member.",
          "type": "string"
        },
        "employee_id": {
          "description": "Id of the employee. This must match an existing employee's employee_id.",
          "type": "string"
        },
        "relationship": {
          "enum": [
            "Employee",
            "Dependent",
            "Spouse",
            "Child",
            "Spouse-Ex",
            "Child-Domestic Partner",
            "Child-Adopted",
            "Child-Foster",
            "Child-Grandchild",
            "Child-Step",
            "Child-Legal Guardian",
            "Domestic Partner",
            "Domestic Partner-Ex",
            ""
          ],
          "type": "string"
        },
        "location_id": {
          "description": "Location id for the employee. This must be an existing location_id in the list of company locations.",
          "type": "string"
        },
        "eid": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "middle_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "mobile_phone": {
          "type": "string"
        },
        "work_phone": {
          "type": "string"
        },
        "address": {
          "$ref": "#/definitions/dtos.Address"
        },
        "birth_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "marital": {
          "enum": [
            "",
            "Single",
            "Married",
            "Divorced",
            "Domestic Partner",
            "Legally Separated",
            "Widowed"
          ],
          "type": "string"
        },
        "ssn": {
          "type": "string"
        },
        "type": {
          "enum": [
            "Full-Time",
            "Part-Time",
            "Variable-Hour",
            "Contractor",
            "Seasonal",
            "Intern",
            ""
          ],
          "type": "string"
        },
        "sex": {
          "enum": [
            "Male",
            "Female",
            ""
          ],
          "type": "string"
        },
        "tobacco": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "hours": {
          "format": "int32",
          "type": "integer"
        },
        "hire_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "pay_cycle_periods": {
          "format": "int32",
          "description": "The number of pay cycles for the employee per year. Accepted values are 1-52.",
          "type": "integer"
        },
        "job_title": {
          "type": "string"
        },
        "job_class": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "division": {
          "type": "string"
        },
        "compensation_type": {
          "enum": [
            "Salary",
            "Hourly"
          ],
          "type": "string"
        },
        "additional_compensation": {
          "format": "double",
          "type": "number"
        },
        "w2compensation": {
          "format": "double",
          "type": "number"
        },
        "compensation": {
          "format": "double",
          "type": "number"
        },
        "citizenship": {
          "type": "string"
        },
        "elections": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.Election"
          }
        }
      }
    },
    "dtos.PlanRenewal": {
      "description": "The payload for a plan renewal.",
      "required": [
        "admin_name",
        "available_start_date",
        "display_name",
        "end_date",
        "options",
        "start_date"
      ],
      "type": "object",
      "properties": {
        "admin_name": {
          "description": "The plan name displayed to the administrators.",
          "type": "string"
        },
        "display_name": {
          "description": "The plan name displayed to the enrollees.",
          "type": "string"
        },
        "start_date": {
          "description": "The effective date of the plan.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "end_date": {
          "description": "The end date of the plan.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "available_start_date": {
          "description": "The Available Start Date is the first date that employees are able to see the plan. This should not be confused with open enrollment dates. If an employee logs in during this time period AND they are eligible for the plan they would be given the option to enroll.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "options": {
          "description": "The options for the renewal.",
          "type": "array",
          "items": {
            "enum": [
              "Documents",
              "Enrollments"
            ],
            "type": "string"
          }
        }
      }
    },
    "dtos.PlanStats": {
      "description": "Aggregated counts for the plan enrollment.",
      "type": "object",
      "properties": {
        "eligible_count": {
          "format": "int32",
          "type": "integer"
        },
        "enrolled_count": {
          "format": "int32",
          "type": "integer"
        },
        "waived_count": {
          "format": "int32",
          "type": "integer"
        },
        "employee_premium_total": {
          "format": "double",
          "type": "number"
        },
        "spouse_premium_total": {
          "format": "double",
          "type": "number"
        },
        "child_premium_total": {
          "format": "double",
          "type": "number"
        },
        "total_premium_total": {
          "format": "double",
          "type": "number"
        },
        "employer_cost_total": {
          "format": "double",
          "type": "number"
        },
        "integration_premium_total": {
          "format": "double",
          "type": "number"
        },
        "integration_enrolled_total": {
          "format": "int32",
          "type": "integer"
        },
        "integration_assisted_total": {
          "format": "int32",
          "type": "integer"
        },
        "employee_statuses": {
          "description": "Plan stats grouped by employee statuses.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/0.KeyValuePair[EmployeeStatus,PlanStats]"
          }
        }
      }
    },
    "dtos.Plans": {
      "required": [
        "company",
        "plans"
      ],
      "type": "object",
      "properties": {
        "new_companies_only": {
          "description": "If true, the server will return an HTTP 419 code if there is already an existing company with the same name. Optional. The default is false.",
          "type": "boolean"
        },
        "plans": {
          "description": "The list of plans to create.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanImport"
          }
        },
        "company": {
          "$ref": "#/definitions/dtos.PlanCompany"
        },
        "members": {
          "description": "The employees of the company and their dependents.  Note that any duplicate employees are ignored, as well as their dependents.  A duplicate is defined as two or more employees having the same first_name, middle_name, last_name, and birth_date.\r\nIf your system does not support a middle name, then you must omit this field in order to avoid having duplicate members.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.PlanMember"
          }
        }
      }
    },
    "dtos.PlansLink": {
      "required": [
        "href"
      ],
      "type": "object",
      "properties": {
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.PlansResult.PlanInfo": {
      "description": "The plan created.",
      "type": "object",
      "properties": {
        "external_id": {
          "description": "The external plan id, originally passed in from the request.",
          "type": "string"
        },
        "id": {
          "description": "The Ease plan id.",
          "type": "string"
        },
        "import_id": {
          "description": "The import id of the plan.",
          "type": "string"
        }
      }
    },
    "dtos.Product": {
      "type": "object",
      "properties": {
        "quantity": {
          "format": "int32",
          "type": "integer"
        },
        "cost": {
          "format": "double",
          "type": "number"
        },
        "sku": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "invoice_type": {
          "type": "string"
        },
        "paid_through_date": {
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "paid_by": {
          "$ref": "#/definitions/dtos.CompanyLink"
        }
      }
    },
    "dtos.ProductLink": {
      "required": [
        "href",
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the object.",
          "type": "string"
        },
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.ProfileChange": {
      "type": "object",
      "properties": {
        "member_id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "old_value": {
          "type": "string"
        },
        "new_value": {
          "type": "string"
        },
        "change_id": {
          "type": "string"
        }
      }
    },
    "dtos.Report": {
      "description": "The request to generate a report with a callback URL.",
      "required": [
        "callback_url",
        "report"
      ],
      "type": "object",
      "properties": {
        "callback_url": {
          "description": "The URL that a notification will be sent to once the report is completed. The payload will contain the URL of the report for retrieval.\r\nExample payload: { \"url\": \"https://secure.ease.com/v2/files?foo=bar\", \"status\": \"Success\" }",
          "type": "string"
        },
        "report": {
          "$ref": "#/definitions/dtos.Report.Request"
        }
      }
    },
    "dtos.Report.Request": {
      "type": "object",
      "properties": {
        "activity_census": {
          "$ref": "#/definitions/dtos.ActivityCensusParameters"
        },
        "enrollment_census": {
          "$ref": "#/definitions/dtos.EnrollmentCensusParameters"
        },
        "full_census": {
          "$ref": "#/definitions/dtos.FullCensusParameters"
        },
        "open_enrollment_changes": {
          "$ref": "#/definitions/dtos.OpenEnrollmentChangesParameters"
        },
        "enrollment_history": {
          "$ref": "#/definitions/dtos.EnrollmentHistoryParameters"
        }
      }
    },
    "dtos.StateW4": {
      "type": "object",
      "properties": {
        "tax_fields": {
          "description": "Contains any applicable  <a href=\"https://s3.amazonaws.com/ease-docs/api/StateTaxFieldsGuide.pdf\" target=\"_blank\">state-level tax fields</a>.\r\nThe abbreviated state of taxation will always be in the \"state\" field."
        },
        "filing_status": {
          "description": "[O: No Exemptions, H: Head of Household, S: Single, M: Married, MS: Married but withhold as single,\r\nM1: Married filing jointly, (one income or spouse does not have income), M2: Married filing jointly, (multiple incomes or spouse has income), W: Qualifying Widow(er),\r\nNRA: NonResident Alien, A: CT - Withholding Code A, B: CT - Withholding Code B, C: CT - Withholding Code C, D: CT - Withholding Code D,\r\nE: Exempt, F: CT - Withholding Code F, NRS: NonResident Single, NRM: NonResident Married]",
          "enum": [
            "O",
            "S",
            "H",
            "M",
            "MS",
            "M1",
            "M2",
            "W",
            "NRA",
            "A",
            "B",
            "C",
            "D",
            "E",
            "F",
            "NRS",
            "NRM"
          ],
          "type": "string"
        },
        "exemption": {
          "format": "int32",
          "type": "integer"
        },
        "is_exempt": {
          "type": "boolean"
        },
        "additional_withholding_type": {
          "description": "Only currently supported value: \"Dollar\"",
          "type": "string"
        },
        "additional_withholding": {
          "format": "double",
          "type": "number"
        }
      }
    },
    "dtos.TaskItem": {
      "description": "ease.models.TaskItem DTO",
      "type": "object",
      "properties": {
        "id": {
          "description": "The id of the task.",
          "type": "string"
        },
        "task_id": {
          "description": "The id of the task in a more human-readable format. Used throughout the Ease's UI.",
          "type": "string"
        },
        "title": {
          "description": "The title of the task.",
          "type": "string"
        },
        "type": {
          "description": "The type of the task.",
          "enum": [
            "General",
            "New Business Setup",
            "Payroll Connection Issue",
            "EaseConnect Amendment",
            "EaseConnect Authorization Form",
            "EaseConnect Evidence of Insurability",
            "EaseConnect Missing Enrollment",
            "EaseConnect Missing Info",
            "EaseConnect Missing Submission",
            "EaseConnect Pending Renewal Date",
            "EaseConnect Production Review",
            "EaseConnect Readiness",
            "EaseConnect Reconciliation",
            "EaseConnect Renewal",
            "EaseConnect Request Documents",
            "EaseConnect Review",
            "EaseConnect Set Up",
            "EaseConnect Submission Issue",
            "EaseConnect Testing",
            "EaseConnect Partner File",
            "EaseConnect Quality Review",
            "EaseConnect Self-Billing Reminder",
            "EaseConnect Connection Issue",
            "EaseConnect Enrollment App Issue"
          ],
          "type": "string"
        },
        "assignment_type": {
          "description": "The type of the company this task is currently assigned to.",
          "enum": [
            "Application",
            "Broker",
            "Client",
            "Partner",
            "Ease"
          ],
          "type": "string"
        },
        "assignee": {
          "description": "Assignee for the task.",
          "type": "string"
        },
        "watchers": {
          "description": "Watchers of the task.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "company_id": {
          "description": "The company this task belongs to.",
          "type": "string"
        },
        "description": {
          "description": "The description of the task.",
          "type": "string"
        },
        "due_date": {
          "description": "The due date of the task.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "status": {
          "description": "The status of the task.",
          "enum": [
            "Open",
            "Closed"
          ],
          "type": "string"
        }
      }
    },
    "dtos.Team": {
      "required": [
        "create_date",
        "id",
        "last_modified_date",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "name": {
          "description": "The object name.",
          "type": "string"
        },
        "create_date": {
          "description": "The create datetime.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "last_modified_date": {
          "description": "The last modified datetime.",
          "type": "string",
          "example": "yyyy-MM-dd"
        },
        "team_members": {
          "description": "The members of the Team.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/dtos.EmployeeLink"
          }
        }
      }
    },
    "dtos.TeamLink": {
      "required": [
        "href",
        "id"
      ],
      "type": "object",
      "properties": {
        "id": {
          "description": "The object id.",
          "type": "string"
        },
        "href": {
          "description": "The object uri.",
          "type": "string"
        }
      }
    },
    "dtos.TimeOffTaken": {
      "required": [
        "employee_id",
        "hours",
        "type"
      ],
      "type": "object",
      "properties": {
        "employee_id": {
          "description": "The employee id.",
          "type": "string"
        },
        "type": {
          "description": "The type of time off request.",
          "enum": [
            "Other",
            "Beareavement",
            "Civic Duty",
            "Civic Duty (Non-Exempt)",
            "Disability",
            "Family/Medical",
            "FMLA",
            "Floating Holiday",
            "Paid Time Off",
            "Parental",
            "Personal",
            "Medical",
            "Sick",
            "USERRA",
            "Vacation",
            "Work From Home"
          ],
          "type": "string"
        },
        "hours": {
          "format": "double",
          "description": "The hours taken.",
          "type": "number"
        }
      }
    }
  }
}