---
schema_version: "1"
id: d6214082bbf952dabea8feee7a72e5c65f317e96ee17e3001d53d239cc79641e
title: ExternalDataSource
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_externaldatasource.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_externaldatasource.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 4ed57cb4a0892fedc5208f50571e295b529a9330a1e70c9e2254307fdd85744d
description: Represents the metadata associated with an external data source. Create external data sources to manage connection details for integration with data and content that are stored outside your Salesforce org.
---
# ExternalDataSource

Represents the metadata associated with an external data source. Create external data sources to manage connection details for integration with data and content that are stored outside your Salesforce org.

![Note](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note.png)

#### Note

All credentials stored within this entity are encrypted under a framework that is consistent with other encryption frameworks on the platform. Salesforce encrypts your credentials by auto-creating org-specific keys. Credentials encrypted using the previous encryption scheme are migrated to the new framework.

This type extends the [Metadata](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/metadata.htm "The base class for all metadata types. You can’t edit this object. A component is an instance of a metadata type.") metadata type and inherits its fullName field.

## File Suffix and Directory Location

ExternalDataSource components are stored in the dataSources directory of the corresponding package directory. ExternalDataSource components have the suffix .dataSource, and the prefix is the name of the external data source.

## Version

ExternalDataSource components are available in API version 28.0 and later.

## Special Access Rules

As of Spring ’20 and later, only authenticated internal and external users can access this type.

## Fields

<table class="featureTable sort_table" summary="">



          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d475227e114">Field Name</th>

              <th class="featureTableHeader  " id="d475227e117">Field Type</th>

              <th class="featureTableHeader  " id="d475227e120">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname" id="field_authProvider"><a name="field_authProvider"><!-- --></a>authProvider</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description"><span class="ph" id="field_authProvider_desc"><a name="field_authProvider_desc"><!-- --></a>The authentication provider represented by the
                  AuthProvider component.</span></td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">certificate</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">If you specify a certificate, your Salesforce org supplies it when establishing
                each two-way SSL connection with the external system. The certificate is used for
                digital signatures, which verify that requests are coming from your Salesforce
                org.<div class="box message confirm">
                  <div class="inner">
                    <div class="bd">
                      <div class="media">
                        <img class="img mtm" src="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note_tip.png" alt="Tip">
                        <div class="mediaBd">
                          <h4 class="mbs">Tip</h4>
                          <p>For best performance, verify that your remote HTTPS encrypted
                            sites have OCSP (Online Certificate Status Protocol) stapling turned
                            on.</p>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname" id="field_customConfiguration"><a name="field_customConfiguration"><!-- --></a>customConfiguration</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">A string of configuration parameters that are specific to the external data
                source’s <span class="keyword parmname">type</span>.<ul class="ul bulletList">
                  <li class="li"><a class="xref" href="#section_customconfiguration_xorg">customConfiguration for Salesforce Connect—Cross-Org Adapter</a></li>

                  <li class="li"><a class="xref" href="#section_customconfiguration_odata">customConfiguration for Salesforce Connect—OData 2.0 or 4.0 Adapter</a></li>

                  <li class="li"><a class="xref" href="#section_customconfiguration_apex">customConfiguration for Salesforce Connect—Custom Adapter</a></li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">customHttpHeaders</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">
                <a class="xref" href="#CustomHttpHeader">CustomHttpHeaders</a>[]
              </td>

              <td class="entry" headers="d475227e120" data-title="Description">Represents custom HTTP headers used with OData 2.0 or OData 4.0 connectors.
                Available in API version 43.0 or later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">endpoint</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">The URL of the external system, or if that URL is defined in a named
                credential, the named credential URL. Corresponds to the <span class="keyword parmname">URL</span> in the
                user interface.<p class="p">A named credential URL contains the scheme <samp class="codeph nolang">callout:</samp>, the name of the named credential, and an
                  optional path. For example: <samp class="codeph nolang">callout:</samp><var class="keyword varname">My_Named_Credential</var><samp class="codeph nolang">/</samp><var class="keyword varname">some_path</var>.</p>
                <p class="p">You can append
                  a query string to a named credential URL. Use a question mark (?) as the separator between the named
                  credential URL and the query string. For example: <samp class="codeph nolang">callout:</samp><var class="keyword varname">My_Named_Credential</var><samp class="codeph nolang">/</samp><var class="keyword varname">some_path</var><samp class="codeph nolang">?format=json</samp>.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">externalDataSrcDescriptors</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">
                <a class="xref" href="#externalDataSrcDescriptor">ExternalDataSrcDescriptors</a>[]
              </td>

              <td class="entry" headers="d475227e120" data-title="Description">Represents schema descriptors for an external data source used with the Salesforce
                Connect adapter for Amazon DynamoDB (available in API version 55.0 or later) or
                Amazon Athena (available in API version 56.0 or later).</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">isWritable</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">boolean</td>

              <td class="entry" headers="d475227e120" data-title="Description">
                <p class="p">Allows the Lightning Platform and users in this org to create, update, and delete
                  records for external objects associated with the external data source. The
                  external object data is stored outside the org. By default, external objects are
                  read-only. Corresponds to <span class="keyword parmname">Writable External Objects</span> in the
                  user interface.</p>

                <p class="p">Available in API version 35.0 and later. However, with the cross-org adapter for
                  Salesforce Connect, you can set this field to <samp class="codeph nolang">true</samp> only in API version 39.0 and later.</p>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">label</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">A name for the external data source. The label is displayed in
                the Salesforce user interface, such as in list views.<p class="p">Examples include Acme Team
                  Marketing Site or Acme SharePoint.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">namedCredential</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description"> Represents the definition of the referenced named credential for an external
                data source of the type Amazon DynamoDB or Amazon Athena.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">oauthRefreshToken</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">The OAuth refresh token. Used to obtain a new access token for an end user when
                a token expires.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">oauthScope</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">Specifies the scope of permissions to request for the access token. Corresponds
                to the <span class="keyword parmname">Scope</span> in the user interface.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">oauthToken</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">The access token issued by the external system.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">password</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">The password your org uses to access the external system. Make sure
                that the credentials you use have adequate privileges to access the external system,
                perform searches, return data, and return information about the external system’s
                metadata.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">principalType</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">
                <samp class="codeph nolang">External​PrincipalType</samp>​
                (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type
                string)
              </td>

              <td class="entry" headers="d475227e120" data-title="Description">Determines whether you're using one set or multiple sets of credentials to
                access the external system. Corresponds to <span class="keyword parmname">Identity Type</span> in the
                user interface. The valid values are:<ul class="ul bulletList">
                  <li class="li"><samp class="codeph nolang">Anonymous</samp></li>

                  <li class="li"><samp class="codeph nolang">NamedCustomPrincipal</samp></li>

                  <li class="li"><samp class="codeph nolang">NamedUser</samp></li>

                  <li class="li"><samp class="codeph nolang">PerUser</samp></li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">protocol</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">
                <samp class="codeph nolang">Authentication​Protocol</samp>​
                (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type
                string)
              </td>

              <td class="entry" headers="d475227e120" data-title="Description">The authentication protocol that’s required to access the external system. The
                valid values are:<ul class="ul bulletList">
                  <li class="li"><samp class="codeph nolang">NoAuthentication</samp></li>

                  <li class="li"><samp class="codeph nolang">Oauth</samp></li>

                  <li class="li"><samp class="codeph nolang">Password</samp></li>

                </ul>
                <p class="p">For cloud-based Files Connect external systems, select <strong class="ph uicontrol">Oauth
                    2.0</strong>. For on-premises systems, select <strong class="ph uicontrol">Password
                    Authentication</strong>.</p>
                <p class="p">For Simple URL data sources, select
                  <strong class="ph uicontrol">No Authentication</strong>.
                </p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">repository</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">Used for SharePoint Online. If metadata isn't accessible, use this field to
                create tables and default table fields.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">type</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">
                <samp class="codeph nolang">ExternalDataSourceType</samp>
                (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type
                string)
              </td>

              <td class="entry" headers="d475227e120" data-title="Description">Required. For Salesforce Connect, specifies the adapter that connects to the
                external system. The valid values are:<ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">AmazonAthena</samp>—Amazon Athena
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">AmazonDynamoDB</samp>—Amazon
                    DynamoDB
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">OData</samp>—OData 2.0 adapter
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">OData4</samp>—OData 4.0 adapter
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">SfdcOrg</samp>—cross-org adapter
                  </li>

                  <li class="li">
                    <var class="keyword varname">ApexClassId</var>—<samp class="codeph apex_code">DataSource.Provider</samp> class that defines the custom adapter created
                    via the Apex Connector Framework
                  </li>

                </ul>
                <p class="p">For Files Connect, specifies the data source type. The valid values are:</p>
                <ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">ContentHubSharepoint</samp>—SharePoint
                    2010 or 2013
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">ContentHubSharepointOffice365</samp>—SharePoint Online
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">ContentHubSharepointOneDrive</samp>—OneDrive for Business
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">ContentHubGDrive</samp>—Google Drive
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">ContenHubIsotope</samp>—Isotope
                  </li>

                </ul>
                <p class="p">If Chatter is enabled, you can also specify <samp class="codeph nolang">SimpleURL</samp> to access data hosted on a web server that doesn’t require
                  authentication.</p>
                <ul class="ul bulletList">
                  <li class="li"><span class="ph" id="outgoingemail_desc"><a name="outgoingemail_desc"><!-- --></a><samp class="codeph nolang">outgoingemail</samp>—A data source used for sending an email through a
                      quick action.</span></li>

                </ul>

                <p class="p">For Digital Lending Configurator, the valid value is:</p>
                <ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">AFPPAttribute</samp>—The data source name for the
                    Application Form Product Proposal Attribute virtual object.
                  </li>

                </ul>

                <p class="p">For the federated search external data source type, the valid value is:</p>
                <ul class="ul bulletList">
                  <li class="li"><samp class="codeph nolang">OpenSearch</samp></li>

                </ul>

                <p class="p">For Transaction Management in Revenue Cloud, the valid values are:</p>
                <ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">ASPAttribute</samp>—The data source name
                    for the Asset State Period Attribute virtual object. Available in API version
                    63.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">OIAttribute</samp>—The data source name for the Order Item Attribute virtual
                    object. Available in API version 63.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">QLIAttribute</samp>—The data source name for the Quote Line Item Attribute virtual
                    object. Available in API version 63.0 and later.
                  </li>

                </ul>
                <p class="p">For
                  SalesAgreement in Manufacturing Cloud, the valid values are:</p>
                <ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">SAPAttribute</samp>—The data source name
                    for the SalesAgreement Product Attribute virtual object. Available in API
                    version 60.0 and later.
                  </li>

                </ul>
                <p class="p">These values are reserved for internal use:</p>
                <ul class="ul bulletList">
                  <li class="li"><samp class="codeph nolang">AssetAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">ClaimAttributeDS</samp></li>

                  <li class="li"><samp class="codeph nolang">ClaimItemAttributeDS</samp></li>

                  <li class="li"><samp class="codeph nolang">CryptoTrEnvChgLogSnp</samp></li>

                  <li class="li"><samp class="codeph nolang">CtrtGrpPlnAttr</samp></li>

                  <li class="li"><samp class="codeph nolang">CtrtGrpPlnGrpClsAttr</samp></li>

                  <li class="li"><samp class="codeph nolang">FAAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">FLAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">IAItemProdtAttr</samp></li>

                  <li class="li"><samp class="codeph nolang">Identity</samp></li>

                  <li class="li"><samp class="codeph nolang">InsPolicyAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">IPAAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">IPCAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">IPCvrBnftAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">IPPAttribute</samp></li>

                  <li class="li"><samp class="codeph nolang">SdbOvenPODataSource</samp></li>

                  <li class="li"><samp class="codeph nolang">Wrapper</samp></li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">username</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">The user name that your org uses to access the external system. Make sure that
                the credentials you use have adequate privileges to access the external system,
                perform searches, return data, and return information about the external system’s
                metadata.</td>

            </tr>

            <tr>
              <td class="entry" headers="d475227e114" data-title="Field Name"><span class="keyword parmname">version</span></td>

              <td class="entry" headers="d475227e117" data-title="Field Type">string</td>

              <td class="entry" headers="d475227e120" data-title="Description">Reserved for future use.</td>

            </tr>

          </tbody>

        </table>

## CustomHttpHeaders

Represents a custom HTTP header used with OData 2.0 or OData 4.0 connectors. Available in API version 43.0 or later.

| Field Name | Field Type | Description |
| --- | --- | --- |
| description | string | A text description of the header field’s purpose. |
| headerFieldName | string | Required. Name of the header field. The name must contain at least one alphanumeric character or underscore. It can also include these characters: ! # $ % & ' \* + - . ^ \_ \` | ~. |
| headerFieldValue | string | Required. A formula that resolves to the value for the header. The values in the formula must evaluate to a string. If the formula resolves to null and an empty string, the header isn’t sent. |
| isActive | boolean | Indicates whether the custom HTTP header is available to use (true) or unavailable (false). |

## customConfiguration for Salesforce Connect—Cross-Org Adapter

This sample JSON-encoded configuration string defines parameters that apply when the external data source’s type is set to SfdcOrg.

{"apiVersion":"32.0","environment":"CUSTOM",
"searchEnabled":"true","timeout":"120"}

The parameters correspond to these fields in the user interface:

- apiVersion—API Version
- environment—Connect to
- searchEnabled—Enable Search
- timeout—Connection Timeout

## customConfiguration for Salesforce Connect—OData 2.0 or 4.0 Adapter

This JSON-encoded configuration string defines parameters that apply when the external data source’s type is set to OData or OData4.

{"inlineCountEnabled":"true","csrfTokenName":"X-CSRF-Token",
"requestCompression":"false","pagination":"CLIENT",
"noIdMapping":"false","format":"ATOM",
"searchFunc":"","compatibility":"DEFAULT",
"csrfTokenEnabled":"true","timeout":"120",
"searchEnabled":"true"}

The parameters correspond to these fields in the user interface.

- compatibility—Special Compatibility
- csrfTokenEnabled—Cross-Site Request Forgery (CSRF) Protection
- csrfTokenName—Anti-CSRF Token Name
- format—Format
- inlineCountEnabled—Request Row Counts
- noIdMapping—High Data Volume
- pagination—Server Driven Pagination
- requestCompression—Compress Requests
- searchEnabled—Enable Search
- searchFunc—Custom Query Option for Salesforce Search
- timeout—Connection Timeout

Declarative Metadata Sample Definition: OData 2.0 or 4.0

The following is the definition of an external data source for Salesforce Connect—OData 2.0 or 4.0 adapter.

<?xml version="1.0" encoding="UTF-8"?>
<ExternalDataSource xmlns="http://soap.sforce.com/2006/04/metadata">
    <authProvider\>FacebookAuth</authProvider\>
    <customConfiguration\>{"compatibility":"DEFAULT",
    "noIdMapping":"false","inlineCountEnabled":"true",
    "searchEnabled":"true","format":"ATOM",
    "requestCompression":"false","pagination":"SERVER",
    "timeout":"120"}</customConfiguration\>
    <customHttpHeaders\>
        <headerFieldName\>X-User</headerFieldName\>
        <headerFieldValue\>$User.Username</headerFieldValue\>
    </customHttpHeaders\>
    <endpoint\>http://myappname.herokuapp.com/DataHub.svc</endpoint\>   
    <label\>DataHub</label\>
    <principalType\>NamedUser</principalType\>
    <protocol\>Oauth</protocol\>
    <type\>OData</type\>
</ExternalDataSource\>

## customConfiguration for Salesforce Connect—Custom Adapter

This sample JSON-encoded configuration string defines the parameter that applies when the external data source’s type is set to the ID of a DataSource.Provider class.

{"noIdMapping":"false"}

The noIdMapping parameter corresponds to the High Data Volume field in the user interface.

## ExternalDataSrcDescriptors for Salesforce Connect Adapter for Amazon DynamoDB and for Amazon Athena

Represents schema descriptors for an external data source used with the Salesforce Connect adapter. The schema descriptors are for Amazon DynamoDB (available in API version 55.0 or later) or Amazon Athena (available in API version 56.0 or later).

<table class="featureTable sort_table" summary="">



            <thead class="thead sorted" align="left">
              <tr>
                <th class="featureTableHeader  " id="d475227e1035">Field Name</th>

                <th class="featureTableHeader  " id="d475227e1038">Field Type</th>

                <th class="featureTableHeader  " id="d475227e1041">Description</th>

              </tr>

            </thead>

            <tbody class="tbody">
              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">customObject</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">string</td>

                <td class="entry" headers="d475227e1041" data-title="Description">If set, the external object associated with the descriptor.</td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">descriptor</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">string</td>

                <td class="entry" headers="d475227e1041" data-title="Description">Required. The descriptor document that contains the metadata
                  information.</td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">descriptorVersion</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">string</td>

                <td class="entry" headers="d475227e1041" data-title="Description">If the external system supports schema versioning for the data source, the
                  optional descriptor document version tracks the external system's schema version.
                  Several descriptors with different document versions can be active.</td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">developerName</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">string</td>

                <td class="entry" headers="d475227e1041" data-title="Description">Required. The unique name of the child-level setup entity.</td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">externalDataSource</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">string</td>

                <td class="entry" headers="d475227e1041" data-title="Description">Required. The name of the external data source associated with the
                  descriptor.</td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">subtype</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">ExternalDataSrcDescSubtype (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type
                  string)</td>

                <td class="entry" headers="d475227e1041" data-title="Description">Required. The subtype of the descriptor.<p class="p">Values are:</p>
                  <ul class="ul bulletList">
                    <li class="li">
                      <samp class="codeph nolang">SchemaTableMetadata</samp>— Used to cache
                      information about the external system.
                    </li>

                    <li class="li">
                      <samp class="codeph nolang">SchemaTableQualifiers</samp>— Used to
                      customize the data retrieval query to the external system.
                    </li>

                  </ul>
                </td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">systemVersion</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">int</td>

                <td class="entry" headers="d475227e1041" data-title="Description">Required. The version that defines the descriptor format and provides
                  compatibility with descriptor formats between Salesforce releases.</td>

              </tr>

              <tr>
                <td class="entry" headers="d475227e1035" data-title="Field Name"><span class="keyword parmname">type</span></td>

                <td class="entry" headers="d475227e1038" data-title="Field Type">ExternalDataSrcDescType (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type
                  string)</td>

                <td class="entry" headers="d475227e1041" data-title="Description">Required. The type of the descriptor.<p class="p">Valid value:</p>
                  <ul class="ul bulletList">
                    <li class="li"><samp class="codeph nolang">Schema</samp></li>

                  </ul>
                </td>

              </tr>

            </tbody>

          </table>

Declarative Metadata Sample Definition: Amazon DynamoDB

The following is an example of an external data source for the Salesforce Connect adapter for Amazon DynamoDB that uses ExternalDataSrcDescriptor component.

<?xml version="1.0" encoding="UTF-8"?>
<ExternalDataSource xmlns="http://soap.sforce.com/2006/04/metadata">
    <customConfiguration\>{"timeout":"120"}</customConfiguration\>
    <externalDataSrcDescriptors\>
        <fullName\>MyQualifierName</fullName\>
        <customObject\>MyExternalObject\_\_x</customObject\>
        <descriptor\>
        {
          "tableName": "MyDynamoDBTable",
          "columns": {
            "MyField": {"presence": "exists"}
          }
        }
        </descriptor\>
        <developerName\>MyQualifierName</developerName\>
        <externalDataSource\>MyDataSource</externalDataSource\>
        <subtype\>SchemaTableQualifiers</subtype\>
        <systemVersion\>0</systemVersion\>
        <type\>Schema</type\>
    </externalDataSrcDescriptors\>
    <isWritable\>true</isWritable\>
    <label\>MyDataSource</label\>
    <namedCredential\>MyNamedCredential</namedCredential\>
    <principalType\>Anonymous</principalType\>
    <protocol\>NoAuthentication</protocol\>
    <type\>AmazonDynamoDb</type\>
</ExternalDataSource\>

Declarative Metadata Sample Definition: Amazon Athena

The following is an example of an external data source for the Salesforce Connect adapter for Amazon Athena that uses ExternalDataSrcDescriptor component.

<?xml version="1.0" encoding="UTF-8"?>
<ExternalDataSource xmlns="http://soap.sforce.com/2006/04/metadata">
    <customConfiguration\>
    {
      "DataCatalog": "AwsDataCatalog",
      "timeout": "120"
    }
    </customConfiguration\>
    <externalDataSrcDescriptors\>
        <fullName\>MyAthenaQualifierName</fullName\>
        <customObject\>MyAthenaExternalObject\_\_x</customObject\>
        <descriptor\>
        {
          "tableName": "myathenadatabase.myathenatable",
          "extendedQualifiers": {"workgroup": "primary"},
          "keyColumns": \["ExternalIdComponent", "OtherExternalIdComponent"\]
        }
        </descriptor\>
        <developerName\>MyAthenaQualifierName</developerName\>
        <externalDataSource\>MyAthenaDataSource</externalDataSource\>
        <subtype\>SchemaTableQualifiers</subtype\>
        <systemVersion\>0</systemVersion\>
        <type\>Schema</type\>
    </externalDataSrcDescriptors\>
    <isWritable\>false</isWritable\>
    <label\>MyAthenaDataSource</label\>
    <namedCredential\>MyAthenaNamedCredential</namedCredential\>
    <principalType\>Anonymous</principalType\>
    <protocol\>NoAuthentication</protocol\>
    <type\>AmazonAthena</type\>
</ExternalDataSource\>

## Wildcard Support in the Manifest File

This metadata type supports the wildcard character \* (asterisk) in the package.xml manifest file. For information about using the manifest file, see [Deploying and Retrieving Metadata with the Zip File](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/file_based_zip_file.htm "The deploy() and retrieve() calls are used to deploy and retrieve a .zip file. Within the .zip file is a project manifest (package.xml) that lists what to retrieve or deploy, and one or more XML components that are organized into folders.").