Class SearchRequest.ContentSearchSpec.SummarySpec.Builder (0.38.0)

public static final class SearchRequest.ContentSearchSpec.SummarySpec.Builder extends GeneratedMessageV3.Builder<SearchRequest.ContentSearchSpec.SummarySpec.Builder> implements SearchRequest.ContentSearchSpec.SummarySpecOrBuilder

A specification for configuring a summary returned in a search response.

Protobuf type google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec

Static Methods

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
Type Description
Descriptor

Methods

addRepeatedField(Descriptors.FieldDescriptor field, Object value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder addRepeatedField(Descriptors.FieldDescriptor field, Object value)
Parameters
Name Description
field FieldDescriptor
value Object
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

build()

public SearchRequest.ContentSearchSpec.SummarySpec build()
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec

buildPartial()

public SearchRequest.ContentSearchSpec.SummarySpec buildPartial()
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec

clear()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clear()
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

clearField(Descriptors.FieldDescriptor field)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearField(Descriptors.FieldDescriptor field)
Parameter
Name Description
field FieldDescriptor
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

clearIgnoreAdversarialQuery()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearIgnoreAdversarialQuery()

Specifies whether to filter out adversarial queries. The default value is false.

Google employs search-query classification to detect adversarial queries. No summary is returned if the search query is classified as an adversarial query. For example, a user might ask a question regarding negative comments about the company or submit a query designed to generate unsafe, policy-violating output. If this field is set to true, we skip generating summaries for adversarial queries and return fallback messages instead.

bool ignore_adversarial_query = 3;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

clearIgnoreNonSummarySeekingQuery()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearIgnoreNonSummarySeekingQuery()

Specifies whether to filter out queries that are not summary-seeking. The default value is false.

Google employs search-query classification to detect summary-seeking queries. No summary is returned if the search query is classified as a non-summary seeking query. For example, why is the sky blue and Who is the best soccer player in the world? are summary-seeking queries, but SFO airport and world cup 2026 are not. They are most likely navigational queries. If this field is set to true, we skip generating summaries for non-summary seeking queries and return fallback messages instead.

bool ignore_non_summary_seeking_query = 4;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

clearIncludeCitations()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearIncludeCitations()

Specifies whether to include citations in the summary. The default value is false.

When this field is set to true, summaries include in-line citation numbers.

Example summary including citations:

BigQuery is Google Cloud's fully managed and completely serverless enterprise data warehouse [1]. BigQuery supports all data types, works across clouds, and has built-in machine learning and business intelligence, all within a unified platform [2, 3].

The citation numbers refer to the returned search results and are 1-indexed. For example, [1] means that the sentence is attributed to the first search result. [2, 3] means that the sentence is attributed to both the second and third search results.

bool include_citations = 2;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

clearLanguageCode()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearLanguageCode()

Language code for Summary. Use language tags defined by BCP47. Note: This is an experimental feature.

string language_code = 6;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

clearModelPromptSpec()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearModelPromptSpec()

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

clearModelSpec()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearModelSpec()

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

clearOneof(Descriptors.OneofDescriptor oneof)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearOneof(Descriptors.OneofDescriptor oneof)
Parameter
Name Description
oneof OneofDescriptor
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

clearSummaryResultCount()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearSummaryResultCount()

The number of top results to generate the summary from. If the number of results returned is less than summaryResultCount, the summary is generated from all of the results.

At most 10 results can be used to generate a summary.

int32 summary_result_count = 1;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

clearUseSemanticChunks()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clearUseSemanticChunks()

If true, answer will be generated from most relevant chunks from top search results. This feature will improve summary quality. Note that with this feature enabled, not all top search results will be referenced and included in the reference list, so the citation source index only points to the search results listed in the reference list.

bool use_semantic_chunks = 8;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

clone()

public SearchRequest.ContentSearchSpec.SummarySpec.Builder clone()
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

getDefaultInstanceForType()

public SearchRequest.ContentSearchSpec.SummarySpec getDefaultInstanceForType()
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec

getDescriptorForType()

public Descriptors.Descriptor getDescriptorForType()
Returns
Type Description
Descriptor
Overrides

getIgnoreAdversarialQuery()

public boolean getIgnoreAdversarialQuery()

Specifies whether to filter out adversarial queries. The default value is false.

Google employs search-query classification to detect adversarial queries. No summary is returned if the search query is classified as an adversarial query. For example, a user might ask a question regarding negative comments about the company or submit a query designed to generate unsafe, policy-violating output. If this field is set to true, we skip generating summaries for adversarial queries and return fallback messages instead.

bool ignore_adversarial_query = 3;

Returns
Type Description
boolean

The ignoreAdversarialQuery.

getIgnoreNonSummarySeekingQuery()

public boolean getIgnoreNonSummarySeekingQuery()

Specifies whether to filter out queries that are not summary-seeking. The default value is false.

Google employs search-query classification to detect summary-seeking queries. No summary is returned if the search query is classified as a non-summary seeking query. For example, why is the sky blue and Who is the best soccer player in the world? are summary-seeking queries, but SFO airport and world cup 2026 are not. They are most likely navigational queries. If this field is set to true, we skip generating summaries for non-summary seeking queries and return fallback messages instead.

bool ignore_non_summary_seeking_query = 4;

Returns
Type Description
boolean

The ignoreNonSummarySeekingQuery.

getIncludeCitations()

public boolean getIncludeCitations()

Specifies whether to include citations in the summary. The default value is false.

When this field is set to true, summaries include in-line citation numbers.

Example summary including citations:

BigQuery is Google Cloud's fully managed and completely serverless enterprise data warehouse [1]. BigQuery supports all data types, works across clouds, and has built-in machine learning and business intelligence, all within a unified platform [2, 3].

The citation numbers refer to the returned search results and are 1-indexed. For example, [1] means that the sentence is attributed to the first search result. [2, 3] means that the sentence is attributed to both the second and third search results.

bool include_citations = 2;

Returns
Type Description
boolean

The includeCitations.

getLanguageCode()

public String getLanguageCode()

Language code for Summary. Use language tags defined by BCP47. Note: This is an experimental feature.

string language_code = 6;

Returns
Type Description
String

The languageCode.

getLanguageCodeBytes()

public ByteString getLanguageCodeBytes()

Language code for Summary. Use language tags defined by BCP47. Note: This is an experimental feature.

string language_code = 6;

Returns
Type Description
ByteString

The bytes for languageCode.

getModelPromptSpec()

public SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec getModelPromptSpec()

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec

The modelPromptSpec.

getModelPromptSpecBuilder()

public SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec.Builder getModelPromptSpecBuilder()

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec.Builder

getModelPromptSpecOrBuilder()

public SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpecOrBuilder getModelPromptSpecOrBuilder()

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpecOrBuilder

getModelSpec()

public SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec getModelSpec()

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec

The modelSpec.

getModelSpecBuilder()

public SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec.Builder getModelSpecBuilder()

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec.Builder

getModelSpecOrBuilder()

public SearchRequest.ContentSearchSpec.SummarySpec.ModelSpecOrBuilder getModelSpecOrBuilder()

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.ModelSpecOrBuilder

getSummaryResultCount()

public int getSummaryResultCount()

The number of top results to generate the summary from. If the number of results returned is less than summaryResultCount, the summary is generated from all of the results.

At most 10 results can be used to generate a summary.

int32 summary_result_count = 1;

Returns
Type Description
int

The summaryResultCount.

getUseSemanticChunks()

public boolean getUseSemanticChunks()

If true, answer will be generated from most relevant chunks from top search results. This feature will improve summary quality. Note that with this feature enabled, not all top search results will be referenced and included in the reference list, so the citation source index only points to the search results listed in the reference list.

bool use_semantic_chunks = 8;

Returns
Type Description
boolean

The useSemanticChunks.

hasModelPromptSpec()

public boolean hasModelPromptSpec()

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Returns
Type Description
boolean

Whether the modelPromptSpec field is set.

hasModelSpec()

public boolean hasModelSpec()

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Returns
Type Description
boolean

Whether the modelSpec field is set.

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
Type Description
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
Type Description
boolean
Overrides

mergeFrom(SearchRequest.ContentSearchSpec.SummarySpec other)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder mergeFrom(SearchRequest.ContentSearchSpec.SummarySpec other)
Parameter
Name Description
other SearchRequest.ContentSearchSpec.SummarySpec
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input CodedInputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides
Exceptions
Type Description
IOException

mergeFrom(Message other)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder mergeFrom(Message other)
Parameter
Name Description
other Message
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

mergeModelPromptSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder mergeModelPromptSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec value)

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Parameter
Name Description
value SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

mergeModelSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder mergeModelSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec value)

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Parameter
Name Description
value SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

mergeUnknownFields(UnknownFieldSet unknownFields)

public final SearchRequest.ContentSearchSpec.SummarySpec.Builder mergeUnknownFields(UnknownFieldSet unknownFields)
Parameter
Name Description
unknownFields UnknownFieldSet
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

setField(Descriptors.FieldDescriptor field, Object value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setField(Descriptors.FieldDescriptor field, Object value)
Parameters
Name Description
field FieldDescriptor
value Object
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

setIgnoreAdversarialQuery(boolean value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setIgnoreAdversarialQuery(boolean value)

Specifies whether to filter out adversarial queries. The default value is false.

Google employs search-query classification to detect adversarial queries. No summary is returned if the search query is classified as an adversarial query. For example, a user might ask a question regarding negative comments about the company or submit a query designed to generate unsafe, policy-violating output. If this field is set to true, we skip generating summaries for adversarial queries and return fallback messages instead.

bool ignore_adversarial_query = 3;

Parameter
Name Description
value boolean

The ignoreAdversarialQuery to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

setIgnoreNonSummarySeekingQuery(boolean value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setIgnoreNonSummarySeekingQuery(boolean value)

Specifies whether to filter out queries that are not summary-seeking. The default value is false.

Google employs search-query classification to detect summary-seeking queries. No summary is returned if the search query is classified as a non-summary seeking query. For example, why is the sky blue and Who is the best soccer player in the world? are summary-seeking queries, but SFO airport and world cup 2026 are not. They are most likely navigational queries. If this field is set to true, we skip generating summaries for non-summary seeking queries and return fallback messages instead.

bool ignore_non_summary_seeking_query = 4;

Parameter
Name Description
value boolean

The ignoreNonSummarySeekingQuery to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

setIncludeCitations(boolean value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setIncludeCitations(boolean value)

Specifies whether to include citations in the summary. The default value is false.

When this field is set to true, summaries include in-line citation numbers.

Example summary including citations:

BigQuery is Google Cloud's fully managed and completely serverless enterprise data warehouse [1]. BigQuery supports all data types, works across clouds, and has built-in machine learning and business intelligence, all within a unified platform [2, 3].

The citation numbers refer to the returned search results and are 1-indexed. For example, [1] means that the sentence is attributed to the first search result. [2, 3] means that the sentence is attributed to both the second and third search results.

bool include_citations = 2;

Parameter
Name Description
value boolean

The includeCitations to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

setLanguageCode(String value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setLanguageCode(String value)

Language code for Summary. Use language tags defined by BCP47. Note: This is an experimental feature.

string language_code = 6;

Parameter
Name Description
value String

The languageCode to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

setLanguageCodeBytes(ByteString value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setLanguageCodeBytes(ByteString value)

Language code for Summary. Use language tags defined by BCP47. Note: This is an experimental feature.

string language_code = 6;

Parameter
Name Description
value ByteString

The bytes for languageCode to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

setModelPromptSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setModelPromptSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec value)

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Parameter
Name Description
value SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

setModelPromptSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec.Builder builderForValue)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setModelPromptSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec.Builder builderForValue)

If specified, the spec will be used to modify the prompt provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec model_prompt_spec = 5;

Parameter
Name Description
builderForValue SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec.Builder
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

setModelSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setModelSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec value)

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Parameter
Name Description
value SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

setModelSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec.Builder builderForValue)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setModelSpec(SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec.Builder builderForValue)

If specified, the spec will be used to modify the model specification provided to the LLM.

.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec model_spec = 7;

Parameter
Name Description
builderForValue SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec.Builder
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

setRepeatedField(Descriptors.FieldDescriptor field, int index, Object value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setRepeatedField(Descriptors.FieldDescriptor field, int index, Object value)
Parameters
Name Description
field FieldDescriptor
index int
value Object
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

setSummaryResultCount(int value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setSummaryResultCount(int value)

The number of top results to generate the summary from. If the number of results returned is less than summaryResultCount, the summary is generated from all of the results.

At most 10 results can be used to generate a summary.

int32 summary_result_count = 1;

Parameter
Name Description
value int

The summaryResultCount to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.

setUnknownFields(UnknownFieldSet unknownFields)

public final SearchRequest.ContentSearchSpec.SummarySpec.Builder setUnknownFields(UnknownFieldSet unknownFields)
Parameter
Name Description
unknownFields UnknownFieldSet
Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder
Overrides

setUseSemanticChunks(boolean value)

public SearchRequest.ContentSearchSpec.SummarySpec.Builder setUseSemanticChunks(boolean value)

If true, answer will be generated from most relevant chunks from top search results. This feature will improve summary quality. Note that with this feature enabled, not all top search results will be referenced and included in the reference list, so the citation source index only points to the search results listed in the reference list.

bool use_semantic_chunks = 8;

Parameter
Name Description
value boolean

The useSemanticChunks to set.

Returns
Type Description
SearchRequest.ContentSearchSpec.SummarySpec.Builder

This builder for chaining.