EnterpriseKnowledgeGraphServiceClient(*, credentials: Optional[google.auth.credentials.Credentials] = None, transport: Optional[Union[str, google.cloud.enterpriseknowledgegraph_v1.services.enterprise_knowledge_graph_service.transports.base.EnterpriseKnowledgeGraphServiceTransport]] = None, client_options: Optional[Union[google.api_core.client_options.ClientOptions, dict]] = None, client_info: google.api_core.gapic_v1.client_info.ClientInfo = <google.api_core.gapic_v1.client_info.ClientInfo object>)
APIs for enterprise knowledge graph product.
Properties
transport
Returns the transport used by the client instance.
Type | Description |
EnterpriseKnowledgeGraphServiceTransport | The transport used by the client instance. |
Methods
EnterpriseKnowledgeGraphServiceClient
EnterpriseKnowledgeGraphServiceClient(*, credentials: Optional[google.auth.credentials.Credentials] = None, transport: Optional[Union[str, google.cloud.enterpriseknowledgegraph_v1.services.enterprise_knowledge_graph_service.transports.base.EnterpriseKnowledgeGraphServiceTransport]] = None, client_options: Optional[Union[google.api_core.client_options.ClientOptions, dict]] = None, client_info: google.api_core.gapic_v1.client_info.ClientInfo = <google.api_core.gapic_v1.client_info.ClientInfo object>)
Instantiates the enterprise knowledge graph service client.
Name | Description |
credentials |
Optional[google.auth.credentials.Credentials]
The authorization credentials to attach to requests. These credentials identify the application to the service; if none are specified, the client will attempt to ascertain the credentials from the environment. |
transport |
Union[str, EnterpriseKnowledgeGraphServiceTransport]
The transport to use. If set to None, a transport is chosen automatically. |
client_options |
Optional[Union[google.api_core.client_options.ClientOptions, dict]]
Custom options for the client. It won't take effect if a |
client_info |
google.api_core.gapic_v1.client_info.ClientInfo
The client info used to send a user-agent string along with API requests. If |
Type | Description |
google.auth.exceptions.MutualTLSChannelError | If mutual TLS transport creation failed for any reason. |
__exit__
__exit__(type, value, traceback)
Releases underlying transport's resources.
cancel_entity_reconciliation_job
cancel_entity_reconciliation_job(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.CancelEntityReconciliationJobRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Cancels a EntityReconciliationJob. Success of cancellation is not guaranteed.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_cancel_entity_reconciliation_job():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.CancelEntityReconciliationJobRequest(
name="name_value",
)
# Make the request
client.cancel_entity_reconciliation_job(request=request)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.CancelEntityReconciliationJobRequest, dict]
The request object. Request message for CancelEntityReconciliationJob. |
name |
str
Required. The name of the EntityReconciliationJob resource. Format: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
cloud_knowledge_graph_entity_path
cloud_knowledge_graph_entity_path(
project: str, location: str, cloud_knowledge_graph_entity: str
)
Returns a fully-qualified cloud_knowledge_graph_entity string.
common_billing_account_path
common_billing_account_path(billing_account: str)
Returns a fully-qualified billing_account string.
common_folder_path
common_folder_path(folder: str)
Returns a fully-qualified folder string.
common_location_path
common_location_path(project: str, location: str)
Returns a fully-qualified location string.
common_organization_path
common_organization_path(organization: str)
Returns a fully-qualified organization string.
common_project_path
common_project_path(project: str)
Returns a fully-qualified project string.
create_entity_reconciliation_job
create_entity_reconciliation_job(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.CreateEntityReconciliationJobRequest, dict]] = None, *, parent: Optional[str] = None, entity_reconciliation_job: Optional[google.cloud.enterpriseknowledgegraph_v1.types.service.EntityReconciliationJob] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Creates a EntityReconciliationJob. A EntityReconciliationJob once created will right away be attempted to start.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_create_entity_reconciliation_job():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.CreateEntityReconciliationJobRequest(
parent="parent_value",
)
# Make the request
response = client.create_entity_reconciliation_job(request=request)
# Handle the response
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.CreateEntityReconciliationJobRequest, dict]
The request object. Request message for CreateEntityReconciliationJob. |
parent |
str
Required. The resource name of the Location to create the EntityReconciliationJob in. Format: |
entity_reconciliation_job |
google.cloud.enterpriseknowledgegraph_v1.types.EntityReconciliationJob
Required. The EntityReconciliationJob to create. This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.types.EntityReconciliationJob | Entity reconciliation job message. |
dataset_path
dataset_path(project: str, dataset: str)
Returns a fully-qualified dataset string.
delete_entity_reconciliation_job
delete_entity_reconciliation_job(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.DeleteEntityReconciliationJobRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Deletes a EntityReconciliationJob. It only deletes the job when the job state is in FAILED, SUCCEEDED, and CANCELLED.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_delete_entity_reconciliation_job():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.DeleteEntityReconciliationJobRequest(
name="name_value",
)
# Make the request
client.delete_entity_reconciliation_job(request=request)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.DeleteEntityReconciliationJobRequest, dict]
The request object. Request message for DeleteEntityReconciliationJob. |
name |
str
Required. The name of the EntityReconciliationJob resource. Format: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
entity_reconciliation_job_path
entity_reconciliation_job_path(
project: str, location: str, entity_reconciliation_job: str
)
Returns a fully-qualified entity_reconciliation_job string.
from_service_account_file
from_service_account_file(filename: str, *args, **kwargs)
Creates an instance of this client using the provided credentials file.
Name | Description |
filename |
str
The path to the service account private key json file. |
Type | Description |
EnterpriseKnowledgeGraphServiceClient | The constructed client. |
from_service_account_info
from_service_account_info(info: dict, *args, **kwargs)
Creates an instance of this client using the provided credentials info.
Name | Description |
info |
dict
The service account private key info. |
Type | Description |
EnterpriseKnowledgeGraphServiceClient | The constructed client. |
from_service_account_json
from_service_account_json(filename: str, *args, **kwargs)
Creates an instance of this client using the provided credentials file.
Name | Description |
filename |
str
The path to the service account private key json file. |
Type | Description |
EnterpriseKnowledgeGraphServiceClient | The constructed client. |
get_entity_reconciliation_job
get_entity_reconciliation_job(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.GetEntityReconciliationJobRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Gets a EntityReconciliationJob.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_get_entity_reconciliation_job():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.GetEntityReconciliationJobRequest(
name="name_value",
)
# Make the request
response = client.get_entity_reconciliation_job(request=request)
# Handle the response
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.GetEntityReconciliationJobRequest, dict]
The request object. Request message for GetEntityReconciliationJob. |
name |
str
Required. The name of the EntityReconciliationJob resource. Format: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.types.EntityReconciliationJob | Entity reconciliation job message. |
get_mtls_endpoint_and_cert_source
get_mtls_endpoint_and_cert_source(
client_options: Optional[google.api_core.client_options.ClientOptions] = None,
)
Return the API endpoint and client cert source for mutual TLS.
The client cert source is determined in the following order:
(1) if GOOGLE_API_USE_CLIENT_CERTIFICATE
environment variable is not "true", the
client cert source is None.
(2) if client_options.client_cert_source
is provided, use the provided one; if the
default client cert source exists, use the default one; otherwise the client cert
source is None.
The API endpoint is determined in the following order:
(1) if client_options.api_endpoint
if provided, use the provided one.
(2) if GOOGLE_API_USE_CLIENT_CERTIFICATE
environment variable is "always", use the
default mTLS endpoint; if the environment variabel is "never", use the default API
endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
use the default API endpoint.
More details can be found at https://google.aip.dev/auth/4114.
Name | Description |
client_options |
google.api_core.client_options.ClientOptions
Custom options for the client. Only the |
Type | Description |
google.auth.exceptions.MutualTLSChannelError | If any errors happen. |
Type | Description |
Tuple[str, Callable[[], Tuple[bytes, bytes]]] | returns the API endpoint and the client cert source to use. |
list_entity_reconciliation_jobs
list_entity_reconciliation_jobs(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.ListEntityReconciliationJobsRequest, dict]] = None, *, parent: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Lists Entity Reconciliation Jobs.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_list_entity_reconciliation_jobs():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.ListEntityReconciliationJobsRequest(
parent="parent_value",
)
# Make the request
page_result = client.list_entity_reconciliation_jobs(request=request)
# Handle the response
for response in page_result:
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.ListEntityReconciliationJobsRequest, dict]
The request object. Request message for EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs. |
parent |
str
Required. The name of the EntityReconciliationJob's parent resource. Format: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.services.enterprise_knowledge_graph_service.pagers.ListEntityReconciliationJobsPager | Response message for EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs. Iterating over this object will yield results and resolve additional pages automatically. |
lookup
lookup(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.LookupRequest, dict]] = None, *, parent: Optional[str] = None, ids: Optional[MutableSequence[str]] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Finds the Cloud KG entities with CKG ID(s).
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_lookup():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.LookupRequest(
parent="parent_value",
ids=['ids_value1', 'ids_value2'],
)
# Make the request
response = client.lookup(request=request)
# Handle the response
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.LookupRequest, dict]
The request object. Request message for EnterpriseKnowledgeGraphService.Lookup. |
parent |
str
Required. The name of the Entity's parent resource. Format: |
ids |
MutableSequence[str]
Required. The list of entity ids to be used for lookup. This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.types.LookupResponse | Response message for EnterpriseKnowledgeGraphService.Lookup. |
lookup_public_kg
lookup_public_kg(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.LookupPublicKgRequest, dict]] = None, *, parent: Optional[str] = None, ids: Optional[MutableSequence[str]] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Finds the public KG entities with public KG ID(s).
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_lookup_public_kg():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.LookupPublicKgRequest(
parent="parent_value",
ids=['ids_value1', 'ids_value2'],
)
# Make the request
response = client.lookup_public_kg(request=request)
# Handle the response
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.LookupPublicKgRequest, dict]
The request object. Request message for EnterpriseKnowledgeGraphService.LookupPublicKg. |
parent |
str
Required. The name of the Entity's parent resource. Format: |
ids |
MutableSequence[str]
Required. The list of entity ids to be used for lookup. This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.types.LookupPublicKgResponse | Response message for EnterpriseKnowledgeGraphService.LookupPublicKg. |
parse_cloud_knowledge_graph_entity_path
parse_cloud_knowledge_graph_entity_path(path: str)
Parses a cloud_knowledge_graph_entity path into its component segments.
parse_common_billing_account_path
parse_common_billing_account_path(path: str)
Parse a billing_account path into its component segments.
parse_common_folder_path
parse_common_folder_path(path: str)
Parse a folder path into its component segments.
parse_common_location_path
parse_common_location_path(path: str)
Parse a location path into its component segments.
parse_common_organization_path
parse_common_organization_path(path: str)
Parse a organization path into its component segments.
parse_common_project_path
parse_common_project_path(path: str)
Parse a project path into its component segments.
parse_dataset_path
parse_dataset_path(path: str)
Parses a dataset path into its component segments.
parse_entity_reconciliation_job_path
parse_entity_reconciliation_job_path(path: str)
Parses a entity_reconciliation_job path into its component segments.
parse_public_knowledge_graph_entity_path
parse_public_knowledge_graph_entity_path(path: str)
Parses a public_knowledge_graph_entity path into its component segments.
parse_table_path
parse_table_path(path: str)
Parses a table path into its component segments.
public_knowledge_graph_entity_path
public_knowledge_graph_entity_path(
project: str, location: str, public_knowledge_graph_entity: str
)
Returns a fully-qualified public_knowledge_graph_entity string.
search
search(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.SearchRequest, dict]] = None, *, parent: Optional[str] = None, query: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Searches the Cloud KG entities with entity name.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_search():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.SearchRequest(
parent="parent_value",
query="query_value",
)
# Make the request
response = client.search(request=request)
# Handle the response
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.SearchRequest, dict]
The request object. Request message for EnterpriseKnowledgeGraphService.Search. |
parent |
str
Required. The name of the Entity's parent resource. Format: |
query |
str
Required. The literal query string for search. This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.types.SearchResponse | Response message for EnterpriseKnowledgeGraphService.Search. |
search_public_kg
search_public_kg(request: Optional[Union[google.cloud.enterpriseknowledgegraph_v1.types.service.SearchPublicKgRequest, dict]] = None, *, parent: Optional[str] = None, query: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Searches the public KG entities with entity name.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import enterpriseknowledgegraph_v1
def sample_search_public_kg():
# Create a client
client = enterpriseknowledgegraph_v1.EnterpriseKnowledgeGraphServiceClient()
# Initialize request argument(s)
request = enterpriseknowledgegraph_v1.SearchPublicKgRequest(
parent="parent_value",
query="query_value",
)
# Make the request
response = client.search_public_kg(request=request)
# Handle the response
print(response)
Name | Description |
request |
Union[google.cloud.enterpriseknowledgegraph_v1.types.SearchPublicKgRequest, dict]
The request object. Request message for EnterpriseKnowledgeGraphService.Search. |
parent |
str
Required. The name of the Entity's parent resource. Format: |
query |
str
Required. The literal query string for search. This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Type | Description |
google.cloud.enterpriseknowledgegraph_v1.types.SearchPublicKgResponse | Response message for EnterpriseKnowledgeGraphService.Search. |
table_path
table_path(project: str, dataset: str, table: str)
Returns a fully-qualified table string.