# Class Routine (3.42.1)

3.42.1 (latest) 3.42.0 3.41.0 3.40.1 3.39.0 3.38.0 3.37.0 3.36.0 3.35.1 3.34.0 3.33.0 3.31.0 3.30.0 3.29.0 3.27.0 3.26.0 3.25.0 3.24.0 3.23.1 3.22.0 3.21.0 3.20.1 3.19.0 3.18.0 3.17.2 3.16.0 3.15.0 3.14.1 3.13.0 3.12.0 3.11.4 3.4.0 3.3.6 3.2.0 3.1.0 3.0.1 2.34.4 2.33.0 2.32.0 2.31.0 2.30.1 2.29.0 2.28.1 2.27.1 2.26.0 2.25.2 2.24.1 2.23.3 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.1 2.15.0 2.14.0 2.13.1 2.12.0 2.11.0 2.10.0 2.9.0 2.8.0 2.7.0 2.6.2 2.5.0 2.4.0 2.3.1 2.2.0 2.1.0 2.0.0 1.28.2 1.27.2 1.26.1 1.25.0 1.24.0 1.23.1 1.22.0 1.21.0 1.20.0 1.19.0 1.18.0 1.17.0 1.16.0

    Routine(routine_ref, **kwargs)

Resource representing a user-defined routine.

See
<https://cloud.google.com/bigquery/docs/reference/rest/v2/routines>

| ## Parameters ||
|---|---|
| **Name** | **Description** |
| `routine_ref` | `Union[str, https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.RoutineReference]` A pointer to a routine. If `routine_ref` is a string, it must included a project ID, dataset ID, and routine ID, each separated by `.`. |
| `` `**kwargs` `` | `Dict` Initial property values. |

## Properties

### arguments

List\[[google.cloud.bigquery.routine.RoutineArgument](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.RoutineArgument)\]: Input/output
argument of a function or a stored procedure.

In-place modification is not supported. To set, replace the entire
property value with the modified list of
[RoutineArgument](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.RoutineArgument) objects.

### body

str: The body of the routine.

### created

Optional\[datetime.datetime\]: Datetime at which the routine was
created (:data:`None` until set from the server).

Read-only.

### data_governance_type

Optional\[str\]: If set to `DATA_MASKING`, the function is validated
and made available as a masking function.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `ValueError` | If the value is not :data:`string` or :data:`None`. |

### dataset_id

str: ID of dataset containing the routine.

### description

Optional\[str\]: Description of the routine (defaults to
:data:`None`).

### determinism_level

Optional\[str\]: (experimental) The determinism level of the JavaScript UDF
if defined.

### etag

str: ETag for the resource (:data:`None` until set from the
server).

Read-only.

### external_runtime_options

Optional\[[google.cloud.bigquery.routine.ExternalRuntimeOptions](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.ExternalRuntimeOptions)\]:
Configures the external runtime options for a routine.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `ValueError` | If the value is not [ExternalRuntimeOptions](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.ExternalRuntimeOptions) or :data:`None`. |

### imported_libraries

<br />

List\[str\]: The path of the imported JavaScript libraries.

The [language](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.Routine) must
equal `JAVACRIPT`.

Examples:
Set the `imported_libraries` to a list of Google Cloud Storage
URIs.

<br />

    .. code-block:: python

       routine = bigquery.Routine("proj.dataset.routine_id")
       routine.imported_libraries = [
           "gs://cloud-samples-data/bigquery/udfs/max-value.js",
       ]

### language

Optional\[str\]: The language of the routine.

Defaults to `SQL`.

### modified

Optional\[datetime.datetime\]: Datetime at which the routine was
last modified (:data:`None` until set from the server).

Read-only.

### path

str: URL path for the routine's APIs.

### project

str: ID of the project containing the routine.

### reference

[google.cloud.bigquery.routine.RoutineReference](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.RoutineReference): Reference
describing the ID of this routine.

### remote_function_options

Optional\[[google.cloud.bigquery.routine.RemoteFunctionOptions](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.RemoteFunctionOptions)\]:
Configures remote function options for a routine.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `ValueError` | If the value is not [RemoteFunctionOptions](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.RemoteFunctionOptions) or :data:`None`. |

### return_table_type

The return type of a Table Valued Function (TVF) routine.

.. versionadded:: 2.22.0

### return_type

google.cloud.bigquery.StandardSqlDataType: Return type of
the routine.

If absent, the return type is inferred from
[body](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.routine.Routine) at query time in
each query that references this routine. If present, then the
evaluated result will be cast to the specified returned type at query
time.

See:
<https://cloud.google.com/bigquery/docs/reference/rest/v2/routines#Routine.FIELDS.return_type>

### routine_id

str: The routine ID.

### type_

str: The fine-grained type of the routine.

See:
<https://cloud.google.com/bigquery/docs/reference/rest/v2/routines#RoutineType>

## Methods

### from_api_repr

    from_api_repr(resource: dict) -> google.cloud.bigquery.routine.routine.Routine

Factory: construct a routine given its API representation.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `resource` | `Dict[str, object]` Resource, as returned from the API. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `google.cloud.bigquery.routine.Routine` | Python object, as parsed from `resource`. |

### to_api_repr

    to_api_repr() -> dict

Construct the API resource representation of this routine.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `Dict[str, object]` | Routine represented as an API resource. |