{
  "openapi": "3.0.1",
  "info": {
    "title": "CMS Interop",
    "version": "v1"
  },
  "paths": {
    "/": {
      "get": {
        "tags": [
          "Help"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/showmodels": {
      "get": {
        "tags": [
          "Help"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ModelContainer"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelContainer"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelContainer"
                }
              }
            }
          }
        }
      }
    },
    "/testmysql": {
      "get": {
        "tags": [
          "Help"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/member/ping": {
      "get": {
        "tags": [
          "Member"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/member/validate": {
      "post": {
        "tags": [
          "Member"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Validate_Member_Request"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Validate_Member_Request"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Validate_Member_Request"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Validate_Member_Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/JToken"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/JToken"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/JToken"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/member/register": {
      "post": {
        "tags": [
          "Member"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Register_Member_Request"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Register_Member_Request"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Register_Member_Request"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Register_Member_Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/JToken"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/JToken"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/JToken"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "JToken": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/JToken"
        }
      },
      "ModelContainer": {
        "type": "object",
        "properties": {
          "Validate_Member_Request": {
            "$ref": "#/components/schemas/Validate_Member_Request"
          },
          "Register_Member_Request": {
            "$ref": "#/components/schemas/Register_Member_Request"
          }
        },
        "additionalProperties": false
      },
      "Register_Member_Request": {
        "required": [
          "Register_Member_Data"
        ],
        "type": "object",
        "properties": {
          "Register_Member_Data": {
            "$ref": "#/components/schemas/Register_Member_Request_Data"
          }
        },
        "additionalProperties": false
      },
      "Register_Member_Request_Data": {
        "required": [
          "Magellan_Member_ID",
          "Registration_Time"
        ],
        "type": "object",
        "properties": {
          "Magellan_Member_ID": {
            "pattern": "^(\\d|[A-Za-z])+-\\d\\d$",
            "type": "string"
          },
          "Registration_Time": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Validate_Member_Request": {
        "required": [
          "Validate_Member_Data"
        ],
        "type": "object",
        "properties": {
          "Validate_Member_Data": {
            "$ref": "#/components/schemas/Validate_Member_Request_Data"
          }
        },
        "additionalProperties": false
      },
      "Validate_Member_Request_Data": {
        "required": [
          "Client_Code",
          "Member_DOB",
          "Member_First_Name",
          "Member_Last_Name"
        ],
        "type": "object",
        "properties": {
          "Client_Code": {
            "maxLength": 50,
            "type": "string"
          },
          "Member_First_Name": {
            "maxLength": 15,
            "type": "string"
          },
          "Member_Last_Name": {
            "maxLength": 25,
            "type": "string"
          },
          "Member_ID": {
            "maxLength": 30,
            "type": "string",
            "nullable": true
          },
          "Member_DOB": {
            "type": "string",
            "format": "date"
          },
          "Member_SSN": {
            "pattern": "^\\d{4}$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}