Vault connector changes

Need to implement Vault Retrieve for VGS
<think>
PR Context:
- Title: feat(connector): Add VGS connector impls
- Merged: 2025-08-25T09:52:19Z
- Files changed: 14 files
- Commits: 13 commits

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

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

## Description
<!-- Describe your changes in detail -->
- Added Connector changes for VGS
- Implemented `ExternalVaultInsertFlow` and `ExternalVaultRetrieveFlow` for VGS
- This allows Payment methods to be vaulted in VGS when `is_external_vault_enabled` is set to true in profile
- Updated VGS UR
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): Add VGS connector impls (#7942)
Files to modify:


**crates/hyperswitch_connectors/src/connectors/vgs.rs**
  Remove:
    - function: pub::new
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_content_type
    - struct: pub::Vgs
    - impl: impl Vgs
    - impl: impl ConnectorValidation for Vgs
    - impl: impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Vgs
  Add:
    - struct: pub::Vgs
    - impl: impl api::ExternalVaultInsert for Vgs
    - impl: impl api::ExternalVault for Vgs
    - impl: impl api::ExternalVaultRetrieve for Vgs
    - impl: impl ConnectorValidation for Vgs
    - impl: impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Vgs
    - impl: impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Vgs
    - impl: impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Vgs
    - impl: impl ConnectorIntegration<ExternalVaultInsertFlow, VaultRequestData, VaultResponseData> for vgs::VgsInsertRequest::try_from(req)

**crates/hyperswitch_connectors/src/connectors/vgs/transformers.rs**
  Remove:
    - function: private::try_from
    - struct: pub::VgsPaymentsRequest
  Add:
    - struct: pub::VgsTokenRequestItem

**crates/hyperswitch_connectors/src/default_implementations.rs**
  Modify existing code

**crates/router/src/core/payment_methods.rs**
  Modify existing code

**crates/router/src/types/api/connector_mapping.rs**
  Modify existing code

**crates/router/src/types/api/feature_matrix.rs**
  Modify existing code

**crates/router/tests/connectors/vgs.rs**
  Modify existing code
{"issue_number": 9023, "pr_number": 7942, "commits_count": 1, "files_changed": 14, "response_length": 3938, "file_count": 9, "needs_breakdown": false}