WebApiSkill Class

A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code.

Constructor

WebApiSkill(*args: Any, **kwargs: Any)

Variables

Name Description
name
str

The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'.

description
str

The description of the skill which describes the inputs, outputs, and usage of the skill.

context
str

Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document.

inputs

Inputs of the skills could be a column in the source data set, or the output of an upstream skill. Required.

outputs

The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill. Required.

uri
str

The url for the Web API. Required.

http_headers

The headers required to make the http request.

http_method
str

The method for the http request.

timeout

The desired timeout for the request. Default is 30 seconds.

batch_size
int

The desired batch size which indicates number of documents.

degree_of_parallelism
int

If set, the number of parallel calls that can be made to the Web API.

auth_resource_id
str

Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.

auth_identity

The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.

odata_type
str

A URI fragment specifying the type of skill. Required. Default value is "#Microsoft.Skills.Custom.WebApiSkill".

Methods

as_dict

Return a dict that can be turned into json using json.dump.

clear

Remove all items from D.

copy
get

Get the value for key if key is in the dictionary, else default. :param str key: The key to look up. :param any default: The value to return if key is not in the dictionary. Defaults to None :returns: D[k] if k in D, else d. :rtype: any

items
keys
pop

Removes specified key and return the corresponding value. :param str key: The key to pop. :param any default: The value to return if key is not in the dictionary :returns: The value corresponding to the key. :rtype: any :raises KeyError: If key is not found and default is not given.

popitem

Removes and returns some (key, value) pair :returns: The (key, value) pair. :rtype: tuple :raises KeyError: if D is empty.

setdefault

Same as calling D.get(k, d), and setting D[k]=d if k not found :param str key: The key to look up. :param any default: The value to set if key is not in the dictionary :returns: D[k] if k in D, else d. :rtype: any

update

Updates D from mapping/iterable E and F. :param any args: Either a mapping object or an iterable of key-value pairs.

values

as_dict

Return a dict that can be turned into json using json.dump.

as_dict(*, exclude_readonly: bool = False) -> dict[str, Any]

Keyword-Only Parameters

Name Description
exclude_readonly

Whether to remove the readonly properties.

Default value: False

Returns

Type Description

A dict JSON compatible object

clear

Remove all items from D.

clear() -> None

copy

copy() -> Model

get

Get the value for key if key is in the dictionary, else default. :param str key: The key to look up. :param any default: The value to return if key is not in the dictionary. Defaults to None :returns: D[k] if k in D, else d. :rtype: any

get(key: str, default: Any = None) -> Any

Parameters

Name Description
key
Required
default
Default value: None

items

items() -> ItemsView[str, Any]

Returns

Type Description

set-like object providing a view on D's items

keys

keys() -> KeysView[str]

Returns

Type Description

a set-like object providing a view on D's keys

pop

Removes specified key and return the corresponding value. :param str key: The key to pop. :param any default: The value to return if key is not in the dictionary :returns: The value corresponding to the key. :rtype: any :raises KeyError: If key is not found and default is not given.

pop(key: str, default: ~typing.Any = <object object>) -> Any

Parameters

Name Description
key
Required
default

popitem

Removes and returns some (key, value) pair :returns: The (key, value) pair. :rtype: tuple :raises KeyError: if D is empty.

popitem() -> tuple[str, Any]

setdefault

Same as calling D.get(k, d), and setting D[k]=d if k not found :param str key: The key to look up. :param any default: The value to set if key is not in the dictionary :returns: D[k] if k in D, else d. :rtype: any

setdefault(key: str, default: ~typing.Any = <object object>) -> Any

Parameters

Name Description
key
Required
default

update

Updates D from mapping/iterable E and F. :param any args: Either a mapping object or an iterable of key-value pairs.

update(*args: Any, **kwargs: Any) -> None

values

values() -> ValuesView[Any]

Returns

Type Description

an object providing a view on D's values

Attributes

auth_identity

The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.

auth_identity: _models.SearchIndexerDataIdentity | None

auth_resource_id

Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.

auth_resource_id: str | None

batch_size

The desired batch size which indicates number of documents.

batch_size: int | None

context

Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document.

context: str | None

degree_of_parallelism

If set, the number of parallel calls that can be made to the Web API.

degree_of_parallelism: int | None

description

The description of the skill which describes the inputs, outputs, and usage of the skill.

description: str | None

http_headers

The headers required to make the http request.

http_headers: _models.WebApiHttpHeaders | None

http_method

The method for the http request.

http_method: str | None

inputs

Inputs of the skills could be a column in the source data set, or the output of an upstream skill. Required.

inputs: list['_models.InputFieldMappingEntry']

name

The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'.

name: str | None

odata_type

A URI fragment specifying the type of skill. Required. Default value is "#Microsoft.Skills.Custom.WebApiSkill".

odata_type: Literal['#Microsoft.Skills.Custom.WebApiSkill']

outputs

The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill. Required.

outputs: list['_models.OutputFieldMappingEntry']

timeout

The desired timeout for the request. Default is 30 seconds.

timeout: timedelta | None

uri

The url for the Web API. Required.

uri: str