Model Provider Service
A governed external model-provider connection stored in Unity Catalog (e.g.
an OpenAI API account, an Azure OpenAI deployment, an Amazon Bedrock
account). Owns the provider type and the auth/configuration the platform
needs to invoke that provider, and is referenced from
ExternalModelConfig.model_provider_service on a ModelService.
One ModelProviderService can back many ModelServices (e.g. an openai_prod
provider serving multiple models); a single ModelService can fan out across
multiple ModelProviderServices for traffic split or failover.
ModelProviderService object
A governed external model-provider connection stored in Unity Catalog (e.g.
an OpenAI API account, an Azure OpenAI deployment, an Amazon Bedrock
account). Owns the provider type and the auth/configuration the platform
needs to invoke that provider, and is referenced from
ExternalModelConfig.model_provider_service on a ModelService.
One ModelProviderService can back many ModelServices (e.g. an openai_prod
provider serving multiple models); a single ModelService can fan out across
multiple ModelProviderServices for traffic split or failover.
- namestringBeta
Resource name of the provider service. Format:
model-provider-services/{catalog}.{schema}.{model_provider_service}. Each{...}component is capped at 255 characters individually. Server-derived on Create fromparent+model_provider_service_id; required and immutable on Update/Get/Delete.
- ownerstringBeta
The owner of the model provider service. Write-only; read owner via effective_owner.
- effective_ownerstringBeta
The resolved owner of the model provider service. Falls back to the caller's identity when
owneris not explicitly set on creation.
- metastore_idstringBeta
Metastore hosting the provider service.
- create_timestringBeta
When the provider service was created.
- created_bystringBeta
Creator identity.
- update_timestringBeta
When the provider service was last modified.
- updated_bystringBeta
Identity of the last updater.
- commentstringBeta
User-provided description.
- etagstringBeta
Optimistic concurrency control token. Server-generated from the entity's state and returned on every read. To use it as an if-match precondition on a mutation, echo the last-read value back via the dedicated
etagfield on the Update / Delete request; the server rejects the mutation if the stored etag differs.
- configobjectBeta
Behavioral configuration: provider connection, model catalog, and passthrough policy. See
ModelProviderServiceConfigfor the per-field contract. Required on CreateModelProviderService; on Update it is required only whenconfig(or aconfig.*subpath) appears inupdate_mask.Show child attributesHide child attributes
- provider_typestringBeta
Provider type discriminator. Required at create time; immutable after. Determines which variant of the
provideroneof must be set. May not be changed via Update; attempts to includeconfig.provider_typeinUpdateModelProviderServiceRequest.update_maskare rejected.Required on CreateModelProviderService and immutable thereafter.
- openaiobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Show child attributesHide child attributes
- api_keyobjectBeta
OpenAI API key. Required on Create. Supplied as inline plaintext via
ProviderSecret.plaintext.
- organizationstringBeta
Optional OpenAI organization ID. When set, the platform forwards it as the
OpenAI-Organizationheader.
- base_urlstringBeta
Optional custom base URL. Defaults to
https://api.openai.com/v1. Use for OpenAI-API-compatible third-party endpoints or in-network proxies.
- azure_openaiobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Show child attributesHide child attributes
- base_urlstringBeta
Full Azure OpenAI endpoint base URL, e.g.
https://myresource.openai.azure.com. Required on Create.
- api_keyobjectBeta
Azure OpenAI API key. Mutually exclusive with the Entra and service-credential modes. Supplied as inline plaintext via
ProviderSecret.plaintext.
- service_credentialobjectBeta
Reference to a UC service credential authorizing Azure OpenAI requests. On Create the caller supplies
service_credential.namein the AIP-122 resource-name formcredentials/{name}. Required on Create when using UC-service-credential auth; mutually exclusive withapi_keyandentra_service_principal. The credential is referenced by name; its value is not carried here. On read the resolvedidandis_deletedare also populated. Only supported on Azure-hosted workspaces; Create requests from other clouds are rejected with INVALID_PARAMETER_VALUE.
- entra_service_principalobjectBeta
Entra ID (service principal) auth. Mutually exclusive with
api_keyandservice_credential.
- anthropicobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Direct (inline-credentials) form: caller supplies the API key in the request body. Required on Create unless
relayedis set.Show child attributesHide child attributes
- api_keyobjectBeta
Anthropic API key. Required on Create. Sent as the
x-api-keyheader on outbound requests. Supplied as inline plaintext viaProviderSecret.plaintext.
- relayedobjectBeta
Relayed (credential-less) form: no Anthropic credential is stored. Each inference request instead carries the caller's own OAuth token, which the platform forwards to Anthropic on outbound requests. Mutually exclusive with
direct; noapi_keyis required or persisted.Show child attributesHide child attributes
- plan_typestringBeta
Which Anthropic subscription tier the relayed token belongs to. Optional; when unset the MPS gets the full governance surface (see TEAM_ENTERPRISE). Immutable after Create, so the tier cannot be flipped in place.
- amazon_bedrockobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Show child attributesHide child attributes
- regionstringBeta
AWS region where the Bedrock endpoint is hosted (e.g.,
us-east-1). Required on Create.
- service_credentialobjectBeta
Reference to a UC service credential authorizing Bedrock requests. On Create the caller supplies
service_credential.namein the AIP-122 resource-name formcredentials/{name}. Required on Create when using UC-service-credential auth; mutually exclusive withaws_access_key. The credential is referenced by name; its value is not carried here. On read the resolvedidandis_deletedare also populated. Only supported on AWS-hosted workspaces; Create requests from other clouds are rejected with INVALID_PARAMETER_VALUE.
- aws_access_keyobjectBeta
AWS access-key-pair auth. Mutually exclusive with
service_credential.
- customobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Show child attributesHide child attributes
- base_urlstringBeta
Endpoint URL of the OpenAI-compatible service (e.g.,
https://api.example.com/v1). Required on Create.
- api_keyobjectBeta
Bearer token forwarded as the
Authorization: Bearer ...header on outbound requests. Supplied as inline plaintext viaProviderSecret.plaintext. Set this for bearer-token auth.
- microsoft_foundryobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Show child attributesHide child attributes
- base_urlstringBeta
Microsoft AI Foundry endpoint URL. Required on Create.
- api_keyobjectBeta
Microsoft AI Foundry API key. Mutually exclusive with the Entra and service-credential modes. Supplied as inline plaintext via
ProviderSecret.plaintext.
- service_credentialobjectBeta
Reference to a UC service credential authorizing Microsoft Foundry requests. On Create the caller supplies
service_credential.namein the AIP-122 resource-name formcredentials/{name}. Required on Create when using UC-service-credential auth; mutually exclusive withapi_keyandentra_service_principal. The credential is referenced by name; its value is not carried here. On read the resolvedidandis_deletedare also populated. Only supported on Azure-hosted workspaces; Create requests from other clouds are rejected with INVALID_PARAMETER_VALUE.
- entra_service_principalobjectBeta
Entra ID (service principal) auth. Mutually exclusive with
api_keyandservice_credential.
- gemini_enterpriseobjectBeta
Show child attributesHide child attributes
- directobjectBeta
Show child attributesHide child attributes
- api_keyobjectBeta
Google Gemini Enterprise API key. Required on Create when using API-key auth; mutually exclusive with
service_credential. Supplied as inline plaintext viaProviderSecret.plaintext.
- project_idstringBeta
GCP project ID hosting the Gemini Enterprise endpoint. Required on Create.
- regionstringBeta
GCP region of the Gemini Enterprise endpoint (e.g.,
us-central1). Required on Create.
- allow_all_targetsbooleanBeta
When true, accepts any model exposed by the upstream provider;
targetsis not required and does not restrict routability. When false, only models listed intargetsare routable.
- targetsarray of objectBeta
Routing targets this provider service exposes (provider-side model identifier + unified API types per entry). Required (>=1) when
allow_all_targets = false; optional and additive whenallow_all_targets = true. References fromExternalModelConfig.targetmust match an entry here unlessallow_all_targets = true.Show child attributesHide child attributes
- modelstringBeta
Provider-side model identifier (e.g. "gpt-5", "claude-opus-4-7"). This is a string on the LLM provider's side, not a UC entity. The UC governance hook for external destinations is the ModelProviderService referenced by
ExternalModelConfig.model_provider_service, not the model itself.
- native_api_typesarray of stringBeta
Provider-native API types the model supports (e.g. "openai/v1/chat/completions"). Used by the platform for request/response translation from the unified API type. At most 64 entries of at most 256 characters each; the list is persisted into the destination binding's bounded storage envelope.
- forward_headersbooleanBeta
Whether to forward incoming request headers to the upstream provider. Applies to managed (multi-model) requests as well as passthrough requests served by this provider service. Governance-level decision by the provider service owner; not selectable per inference call.
- forward_query_parametersbooleanBeta
Whether to forward incoming request query parameters to the upstream provider. Same trust-boundary semantics as
forward_headers.
- forward_unmanaged_pathsbooleanBeta
Whether to forward request paths that fall outside this service's managed API set to the upstream provider as opaque passthrough. When true, requests addressed to subpaths not recognized by the managed API surface are proxied to the upstream provider over the same provider connection. When false, only managed-API paths are served. Governance-level decision by the provider service owner; expanding this expands the trust boundary that the ModelProviderService exposes.
- rate_limitsarray of objectBeta
Rate limits applied when this provider service is invoked directly. When it is invoked through a model service, the model service's own
rate_limitsapply instead. MirrorsModelServiceConfig.rate_limits/McpServiceConfig.rate_limits.Show child attributesHide child attributes
- keystringBeta
Scope key. Determines whether
principalis required.
- renewal_periodstringBeta
Renewal period.
- principalstringBeta
Principal this limit applies to: user email, group name, or service principal application ID. Required unless
keyisRATE_LIMIT_KEY_SERVICE,RATE_LIMIT_KEY_USER_DEFAULT, orRATE_LIMIT_KEY_REQUEST_TAG(which must not set a principal).
- requestsint64Beta
Max requests allowed within a renewal period. Leave unset for no request limit.
- tokensint64Beta
Max tokens allowed within a renewal period. Leave unset for no token limit.
- request_tag_keystringBeta
Request tag key this limit applies to. Required when
keyisRATE_LIMIT_KEY_REQUEST_TAG, forbidden otherwise.
- request_tag_valuestringBeta
Request tag value this limit applies to. Only valid when
keyisRATE_LIMIT_KEY_REQUEST_TAG. Leave unset to apply the limit to every value ofrequest_tag_key(an any-value default); a set value is a specific override for that value.
- inference_tableobjectBeta
Inference table configuration for payload logging when this provider service is invoked directly. When it is invoked through a model service, the model service's own inference table captures the invocation instead. Mirrors
ModelServiceConfig.inference_table/AgentServiceConfig.inference_table.Show child attributesHide child attributes
- parentstringBeta
Parent UC schema where the inference table is created. Format:
schemas/{catalog}.{schema}. Set at create time and immutable thereafter; changing it on an existing service is rejected.
- table_name_prefixstringBeta
Prefix for the inference-table's UC-registered name. The actual leaf name UC stores is
<table_name_prefix>_payload; the_payloadsuffix is appended automatically. To find the actual UC table after Create, read thetablefield on the response. Defaults to<model_service_name>_payloadwhen unset. Set at create time and immutable thereafter; changing it on an existing service is rejected.
- disabledbooleanBeta
Indicates whether payload logging is disabled (opt-out). Unset means that payload logging is active (the on-by-default state coincides with the proto zero-value, so the server never fills this field for a client that leaves it unset). Set
disabled = trueto pause runtime logging while keeping the sub-message attached (preservingparentandtable_name_prefixfor a later flip back to active).parentremains required either way.
- tablestringBeta
Resolved UC table for payload logs. Format:
tables/{catalog}.{schema}.{table}.
- is_deletedbooleanBeta
True when the bound inference TABLE has been deleted but the parent service still references it. The dangling reference is surfaced (not silently dropped) so callers can see the broken dependency. AI Gateway payload logging fails closed in this state.
Get Beta
GET
Returns the model provider service identified by its resource name.
You must be the owner of the model provider service or have EXECUTE,
READ_METADATA, or MANAGE on it, plus USE_CATALOG on the parent
catalog and USE_SCHEMA on the parent schema.
API scopes: unity-catalog
Parameters
- namestringpath
Resource name of the model provider service. Format:
model-provider-services/{catalog}.{schema}.{model_provider_service}. Each{...}component is capped at 255 characters individually.
Response
Returns the ModelProviderService object.
List Beta
GET
Lists the model provider services in a Unity Catalog schema. Provide
parent as schemas/{catalog}.{schema}. Results are paginated; pass the
returned next_page_token to fetch subsequent pages.
Requires USE_CATALOG on the parent catalog and USE_SCHEMA on the
parent schema. Only model provider services the caller can access (as
owner or through EXECUTE, READ_METADATA, or MANAGE) are returned.
API scopes: unity-catalog
Parameters
- parentstringquery
Name of the parent schema to list within, as
schemas/{catalog}.{schema}. Each{...}component is capped at 255 characters individually.
- page_sizeint32query
Maximum number of provider services to return. Defaults to 100 when unset or 0; the maximum is 100. Use
page_tokento retrieve additional pages.
- page_tokenstringquery
Opaque pagination token from a previous request.
- viewstringquery
View selector controlling which fields are populated per row.
FULLreturns the full representation of the service;BASICreturns a more compact version. Defaults toBASICwhen unset.
Response
Returns a list of ModelProviderService objects.
Create Beta
POST
Creates a model provider service in a Unity Catalog schema. A model
provider service is a governed connection to an external model provider
(for example OpenAI, Azure OpenAI, or Amazon Bedrock) that model services
reference to invoke that provider. The caller supplies the leaf name in
model_provider_service_id.
You must be the owner of the parent schema or have the CREATE_SERVICE
and USE_SCHEMA privileges on the parent schema and USE_CATALOG on the
parent catalog.
API scopes: unity-catalog
Parameters
- parentstringquery
Name of the parent schema. Format:
schemas/{catalog}.{schema}. Each{...}component is capped at 255 characters individually.
- model_provider_service_idstringquery
Name for the model provider service, e.g. "openai_prod".
Request body
- model_provider_serviceobject
The model provider service to create. The server populates
namefromparent+model_provider_service_id; clients should leave it unset.Show child attributesHide child attributes
- namestring
Resource name of the provider service. Format:
model-provider-services/{catalog}.{schema}.{model_provider_service}. Each{...}component is capped at 255 characters individually. Server-derived on Create fromparent+model_provider_service_id; required and immutable on Update/Get/Delete.
- ownerstring
The owner of the model provider service. Write-only; read owner via effective_owner.
- effective_ownerstring
The resolved owner of the model provider service. Falls back to the caller's identity when
owneris not explicitly set on creation.
- metastore_idstring
Metastore hosting the provider service.
- create_timestring
When the provider service was created.
- created_bystring
Creator identity.
- update_timestring
When the provider service was last modified.
- updated_bystring
Identity of the last updater.
- commentstring
User-provided description.
- etagstring
Optimistic concurrency control token. Server-generated from the entity's state and returned on every read. To use it as an if-match precondition on a mutation, echo the last-read value back via the dedicated
etagfield on the Update / Delete request; the server rejects the mutation if the stored etag differs.
- configobject
Behavioral configuration: provider connection, model catalog, and passthrough policy. See
ModelProviderServiceConfigfor the per-field contract. Required on CreateModelProviderService; on Update it is required only whenconfig(or aconfig.*subpath) appears inupdate_mask.Show child attributesHide child attributes
- provider_typestring
Provider type discriminator. Required at create time; immutable after. Determines which variant of the
provideroneof must be set. May not be changed via Update; attempts to includeconfig.provider_typeinUpdateModelProviderServiceRequest.update_maskare rejected.Required on CreateModelProviderService and immutable thereafter.
- openaiobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- azure_openaiobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- anthropicobjectRequired
Show child attributesHide child attributes
- directobjectRequired
Direct (inline-credentials) form: caller supplies the API key in the request body. Required on Create unless
relayedis set.
- relayedobjectRequired
Relayed (credential-less) form: no Anthropic credential is stored. Each inference request instead carries the caller's own OAuth token, which the platform forwards to Anthropic on outbound requests. Mutually exclusive with
direct; noapi_keyis required or persisted.
- amazon_bedrockobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- customobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- microsoft_foundryobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- gemini_enterpriseobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- allow_all_targetsboolean
When true, accepts any model exposed by the upstream provider;
targetsis not required and does not restrict routability. When false, only models listed intargetsare routable.
- targetsarray of object
Routing targets this provider service exposes (provider-side model identifier + unified API types per entry). Required (>=1) when
allow_all_targets = false; optional and additive whenallow_all_targets = true. References fromExternalModelConfig.targetmust match an entry here unlessallow_all_targets = true.Show child attributesHide child attributes
- modelstring
Provider-side model identifier (e.g. "gpt-5", "claude-opus-4-7"). This is a string on the LLM provider's side, not a UC entity. The UC governance hook for external destinations is the ModelProviderService referenced by
ExternalModelConfig.model_provider_service, not the model itself.
- native_api_typesarray of string
Provider-native API types the model supports (e.g. "openai/v1/chat/completions"). Used by the platform for request/response translation from the unified API type. At most 64 entries of at most 256 characters each; the list is persisted into the destination binding's bounded storage envelope.
- forward_headersboolean
Whether to forward incoming request headers to the upstream provider. Applies to managed (multi-model) requests as well as passthrough requests served by this provider service. Governance-level decision by the provider service owner; not selectable per inference call.
- forward_query_parametersboolean
Whether to forward incoming request query parameters to the upstream provider. Same trust-boundary semantics as
forward_headers.
- forward_unmanaged_pathsboolean
Whether to forward request paths that fall outside this service's managed API set to the upstream provider as opaque passthrough. When true, requests addressed to subpaths not recognized by the managed API surface are proxied to the upstream provider over the same provider connection. When false, only managed-API paths are served. Governance-level decision by the provider service owner; expanding this expands the trust boundary that the ModelProviderService exposes.
- rate_limitsarray of object
Rate limits applied when this provider service is invoked directly. When it is invoked through a model service, the model service's own
rate_limitsapply instead. MirrorsModelServiceConfig.rate_limits/McpServiceConfig.rate_limits.Show child attributesHide child attributes
- keystring
Scope key. Determines whether
principalis required.
- renewal_periodstring
Renewal period.
- principalstring
Principal this limit applies to: user email, group name, or service principal application ID. Required unless
keyisRATE_LIMIT_KEY_SERVICE,RATE_LIMIT_KEY_USER_DEFAULT, orRATE_LIMIT_KEY_REQUEST_TAG(which must not set a principal).
- requestsint64
Max requests allowed within a renewal period. Leave unset for no request limit.
- tokensint64
Max tokens allowed within a renewal period. Leave unset for no token limit.
- request_tag_keystring
Request tag key this limit applies to. Required when
keyisRATE_LIMIT_KEY_REQUEST_TAG, forbidden otherwise.
- request_tag_valuestring
Request tag value this limit applies to. Only valid when
keyisRATE_LIMIT_KEY_REQUEST_TAG. Leave unset to apply the limit to every value ofrequest_tag_key(an any-value default); a set value is a specific override for that value.
- inference_tableobject
Inference table configuration for payload logging when this provider service is invoked directly. When it is invoked through a model service, the model service's own inference table captures the invocation instead. Mirrors
ModelServiceConfig.inference_table/AgentServiceConfig.inference_table.Show child attributesHide child attributes
- parentstring
Parent UC schema where the inference table is created. Format:
schemas/{catalog}.{schema}. Set at create time and immutable thereafter; changing it on an existing service is rejected.
- table_name_prefixstring
Prefix for the inference-table's UC-registered name. The actual leaf name UC stores is
<table_name_prefix>_payload; the_payloadsuffix is appended automatically. To find the actual UC table after Create, read thetablefield on the response. Defaults to<model_service_name>_payloadwhen unset. Set at create time and immutable thereafter; changing it on an existing service is rejected.
- disabledboolean
Indicates whether payload logging is disabled (opt-out). Unset means that payload logging is active (the on-by-default state coincides with the proto zero-value, so the server never fills this field for a client that leaves it unset). Set
disabled = trueto pause runtime logging while keeping the sub-message attached (preservingparentandtable_name_prefixfor a later flip back to active).parentremains required either way.
- tablestring
Resolved UC table for payload logs. Format:
tables/{catalog}.{schema}.{table}.
- is_deletedboolean
True when the bound inference TABLE has been deleted but the parent service still references it. The dangling reference is surfaced (not silently dropped) so callers can see the broken dependency. AI Gateway payload logging fails closed in this state.
Response
Returns the ModelProviderService object.
Update Beta
PATCH
Updates a model provider service. Only the fields named in update_mask
are changed; the resource name and provider type are immutable. Optionally
supply an etag to make the update conditional on the model provider
service not having changed since it was read.
You must be the owner of the model provider service or have MANAGE on
it, plus USE_CATALOG on the parent catalog and USE_SCHEMA on the
parent schema.
API scopes: unity-catalog
Parameters
- model_provider_serviceobjectpath
The model provider service with the updated field values.
nameidentifies the resource (model-provider-services/{catalog}.{schema}.{model_provider_service}); only fields listed inupdate_maskare applied.Show child attributesHide child attributes
- namestring
Resource name of the provider service. Format:
model-provider-services/{catalog}.{schema}.{model_provider_service}. Each{...}component is capped at 255 characters individually. Server-derived on Create fromparent+model_provider_service_id; required and immutable on Update/Get/Delete.
- ownerstring
The owner of the model provider service. Write-only; read owner via effective_owner.
- effective_ownerstring
The resolved owner of the model provider service. Falls back to the caller's identity when
owneris not explicitly set on creation.
- metastore_idstring
Metastore hosting the provider service.
- create_timestring
When the provider service was created.
- created_bystring
Creator identity.
- update_timestring
When the provider service was last modified.
- updated_bystring
Identity of the last updater.
- commentstring
User-provided description.
- etagstring
Optimistic concurrency control token. Server-generated from the entity's state and returned on every read. To use it as an if-match precondition on a mutation, echo the last-read value back via the dedicated
etagfield on the Update / Delete request; the server rejects the mutation if the stored etag differs.
- configobject
Behavioral configuration: provider connection, model catalog, and passthrough policy. See
ModelProviderServiceConfigfor the per-field contract. Required on CreateModelProviderService; on Update it is required only whenconfig(or aconfig.*subpath) appears inupdate_mask.Show child attributesHide child attributes
- provider_typestring
Provider type discriminator. Required at create time; immutable after. Determines which variant of the
provideroneof must be set. May not be changed via Update; attempts to includeconfig.provider_typeinUpdateModelProviderServiceRequest.update_maskare rejected.Required on CreateModelProviderService and immutable thereafter.
- openaiobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- azure_openaiobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- anthropicobjectRequired
Show child attributesHide child attributes
- directobjectRequired
Direct (inline-credentials) form: caller supplies the API key in the request body. Required on Create unless
relayedis set.
- relayedobjectRequired
Relayed (credential-less) form: no Anthropic credential is stored. Each inference request instead carries the caller's own OAuth token, which the platform forwards to Anthropic on outbound requests. Mutually exclusive with
direct; noapi_keyis required or persisted.
- amazon_bedrockobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- customobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- microsoft_foundryobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- gemini_enterpriseobjectRequired
Show child attributesHide child attributes
- directobjectRequired
- allow_all_targetsboolean
When true, accepts any model exposed by the upstream provider;
targetsis not required and does not restrict routability. When false, only models listed intargetsare routable.
- targetsarray of object
Routing targets this provider service exposes (provider-side model identifier + unified API types per entry). Required (>=1) when
allow_all_targets = false; optional and additive whenallow_all_targets = true. References fromExternalModelConfig.targetmust match an entry here unlessallow_all_targets = true.Show child attributesHide child attributes
- modelstring
Provider-side model identifier (e.g. "gpt-5", "claude-opus-4-7"). This is a string on the LLM provider's side, not a UC entity. The UC governance hook for external destinations is the ModelProviderService referenced by
ExternalModelConfig.model_provider_service, not the model itself.
- native_api_typesarray of string
Provider-native API types the model supports (e.g. "openai/v1/chat/completions"). Used by the platform for request/response translation from the unified API type. At most 64 entries of at most 256 characters each; the list is persisted into the destination binding's bounded storage envelope.
- forward_headersboolean
Whether to forward incoming request headers to the upstream provider. Applies to managed (multi-model) requests as well as passthrough requests served by this provider service. Governance-level decision by the provider service owner; not selectable per inference call.
- forward_query_parametersboolean
Whether to forward incoming request query parameters to the upstream provider. Same trust-boundary semantics as
forward_headers.
- forward_unmanaged_pathsboolean
Whether to forward request paths that fall outside this service's managed API set to the upstream provider as opaque passthrough. When true, requests addressed to subpaths not recognized by the managed API surface are proxied to the upstream provider over the same provider connection. When false, only managed-API paths are served. Governance-level decision by the provider service owner; expanding this expands the trust boundary that the ModelProviderService exposes.
- rate_limitsarray of object
Rate limits applied when this provider service is invoked directly. When it is invoked through a model service, the model service's own
rate_limitsapply instead. MirrorsModelServiceConfig.rate_limits/McpServiceConfig.rate_limits.Show child attributesHide child attributes
- keystring
Scope key. Determines whether
principalis required.
- renewal_periodstring
Renewal period.
- principalstring
Principal this limit applies to: user email, group name, or service principal application ID. Required unless
keyisRATE_LIMIT_KEY_SERVICE,RATE_LIMIT_KEY_USER_DEFAULT, orRATE_LIMIT_KEY_REQUEST_TAG(which must not set a principal).
- requestsint64
Max requests allowed within a renewal period. Leave unset for no request limit.
- tokensint64
Max tokens allowed within a renewal period. Leave unset for no token limit.
- request_tag_keystring
Request tag key this limit applies to. Required when
keyisRATE_LIMIT_KEY_REQUEST_TAG, forbidden otherwise.
- request_tag_valuestring
Request tag value this limit applies to. Only valid when
keyisRATE_LIMIT_KEY_REQUEST_TAG. Leave unset to apply the limit to every value ofrequest_tag_key(an any-value default); a set value is a specific override for that value.
- inference_tableobject
Inference table configuration for payload logging when this provider service is invoked directly. When it is invoked through a model service, the model service's own inference table captures the invocation instead. Mirrors
ModelServiceConfig.inference_table/AgentServiceConfig.inference_table.Show child attributesHide child attributes
- parentstring
Parent UC schema where the inference table is created. Format:
schemas/{catalog}.{schema}. Set at create time and immutable thereafter; changing it on an existing service is rejected.
- table_name_prefixstring
Prefix for the inference-table's UC-registered name. The actual leaf name UC stores is
<table_name_prefix>_payload; the_payloadsuffix is appended automatically. To find the actual UC table after Create, read thetablefield on the response. Defaults to<model_service_name>_payloadwhen unset. Set at create time and immutable thereafter; changing it on an existing service is rejected.
- disabledboolean
Indicates whether payload logging is disabled (opt-out). Unset means that payload logging is active (the on-by-default state coincides with the proto zero-value, so the server never fills this field for a client that leaves it unset). Set
disabled = trueto pause runtime logging while keeping the sub-message attached (preservingparentandtable_name_prefixfor a later flip back to active).parentremains required either way.
- tablestring
Resolved UC table for payload logs. Format:
tables/{catalog}.{schema}.{table}.
- is_deletedboolean
True when the bound inference TABLE has been deleted but the parent service still references it. The dangling reference is surfaced (not silently dropped) so callers can see the broken dependency. AI Gateway payload logging fails closed in this state.
- update_maskstringquery
The list of fields to update. The framework validates each path against the
model_provider_servicefield above. Wildcard paths (paths: ["*"]) are not supported; list each field path explicitly.
- etagstringquery
If-match precondition: when set, the update proceeds only if the current server-side etag matches. Empty means an unconditional update.
Response
Returns the ModelProviderService object.
Delete Beta
DELETE
Deletes the model provider service identified by its resource name.
Optionally supply an etag to make the delete conditional on the model
provider service not having changed since it was read.
You must be the owner of the model provider service or have MANAGE on
it, plus USE_CATALOG on the parent catalog and USE_SCHEMA on the
parent schema.
API scopes: unity-catalog
Parameters
- namestringpath
Resource name of the model provider service. Format:
model-provider-services/{catalog}.{schema}.{model_provider_service}. Each{...}component is capped at 255 characters individually.
- etagstringquery
If-match precondition: when set, the delete proceeds only if the current server-side etag matches. Empty means unconditional delete.