Bug: [BUG] : `connector_name` in `MerchantConnectorCreate` accepts any value



### Bug Description

When creating a merchant connector account, the `connector_name` field is of string type. This would mean that any value can be passed to that field. There is no check done to validate whether the connector name given, is actually supported. This creates an issue in the payments flow when the `connector` is accessed as enum here https://github.com/juspay/hyperswitch/blob/58332f055e640ec810a3c6cc8e534f2f862e57dc/crates/router/src/types/api.rs#L144. The conversion function from string to enum can be found here https://github.com/juspay/hyperswitch/blob/58332f055e640ec810a3c6cc8e534f2f862e57dc/crates/router/src/types/api.rs#L185

### Expected Behavior

It should only accept the `connector_name` which are supported by hyperswitch.

### Actual Behavior

It accepts any value and then fails when creating the payment.

### Steps To Reproduce

Provide an unambiguous set of steps to reproduce this bug. Include code or configuration to reproduce, if relevant.
1. Create a `connector_account` with any `connector_name`. ( could be a typo ).
2. Create a payment with actual connector name.
3. The payment fails saying `Merchant connector account does not exist in our records`


### Context For The Bug

_No response_

### Environment

Are you using hyperswitch hosted version? No
If yes, please provide the value of the `x-request-id` response header for helping us debug your issue.

If not (or if building/running locally), please provide the following details:
1. Operating System or Linux distribution: Macos
2. Rust version (output of `rustc --version`): `rustc 1.68.2 (9eb3afe9e 2023-03-27)`
3. App version (output of `cargo r -- --version`): ``


### Have you spent some time to check if this bug has been raised before?

- [X] I checked and didn't find similar issue

### Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?

No, but I'm happy to collaborate on a PR with someone else
diff --git a/crates/api_models/src/admin.rs b/crates/api_models/src/admin.rs
index e7164a2493f..895b137679c 100644
--- a/crates/api_models/src/admin.rs
+++ b/crates/api_models/src/admin.rs
@@ -391,8 +391,8 @@ pub struct MerchantConnectorCreate {
     #[schema(value_type = ConnectorType, example = "payment_processor")]
     pub connector_type: api_enums::ConnectorType,
     /// Name of the Connector
-    #[schema(example = "stripe")]
-    pub connector_name: String,
+    #[schema(value_type = Connector, example = "stripe")]
+    pub connector_name: api_enums::Connector,
     // /// Connector label for specific country and Business
     #[serde(skip_deserializing)]
     #[schema(example = "stripe_US_travel")]
diff --git a/crates/router/src/core/admin.rs b/crates/router/src/core/admin.rs
index d80744c83f8..9bb0d449a92 100644
--- a/crates/router/src/core/admin.rs
+++ b/crates/router/src/core/admin.rs
@@ -462,7 +462,7 @@ pub async fn create_payment_connector(
         business_country,
         &business_label,
         req.business_sub_label.as_ref(),
-        &req.connector_name,
+        &req.connector_name.to_string(),
     );
 
     let mut vec = Vec::new();
@@ -504,7 +504,7 @@ pub async fn create_payment_connector(
     let merchant_connector_account = domain::MerchantConnectorAccount {
         merchant_id: merchant_id.to_string(),
         connector_type: req.connector_type.foreign_into(),
-        connector_name: req.connector_name.clone(),
+        connector_name: req.connector_name.to_string(),
         merchant_connector_id: utils::generate_id(consts::ID_LENGTH, "mca"),
         connector_account_details: domain_types::encrypt(
             req.connector_account_details.ok_or(
diff --git a/openapi/openapi_spec.json b/openapi/openapi_spec.json
index 9b332e14ddf..abc252e2c9d 100644
--- a/openapi/openapi_spec.json
+++ b/openapi/openapi_spec.json
@@ -4986,9 +4986,7 @@
             "$ref": "#/components/schemas/ConnectorType"
           },
           "connector_name": {
-            "type": "string",
-            "description": "Name of the Connector",
-            "example": "stripe"
+            "$ref": "#/components/schemas/Connector"
           },
           "connector_label": {
             "type": "string",

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
When creating a merchant connector account, the connector_name field is of string type. This would mean that any value can be passed to that field. There is no check done to validate whether the connector name given, is actually supported. This creates an issue in the payments flow when the connector is accessed as enum here

### Additional Changes

- [x] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless its an obvious bug or documentation fix
that will have little conversation).
-->
Fixes #1023.

## How did you test it?
Used Postman Call Payment Connector - Create to test the changes
Testing with a random connector and
<img width="1514" alt="Screenshot 2023-07-06 at 6 45 53 PM" src="https://github.com/juspay/hyperswitch/assets/41580413/16c4f694-0422-4c08-b7d9-08eec169b6ff">
 a supported connector:
<img width="1514" alt="Screenshot 2023-07-06 at 6 46 13 PM" src="https://github.com/juspay/hyperswitch/assets/41580413/0dccf69c-8d39-47ff-8b64-9511007a54b9">



## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable
