public sealed class SystemParameters : IMessage<SystemParameters>, IEquatable<SystemParameters>, IDeepCloneable<SystemParameters>, IBufferMessage, IMessage
System parameter configuration
A system parameter is a special kind of parameter defined by the API
system, not by an individual API. It is typically mapped to an HTTP header
and/or a URL query parameter. This configuration specifies which methods
change the names of the system parameters.
public RepeatedField<SystemParameterRule> Rules { get; }
Define system parameters.
The parameters defined here will override the default parameters
implemented by the system. If this field is missing from the service
config, default system parameters will be used. Default system parameters
and names is implementation-dependent.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eSystem parameters are specialized parameters defined by the API system, often mapped to HTTP headers or URL query parameters.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eSystemParameters\u003c/code\u003e class allows for configuration of these system parameters, enabling the modification of their names and usage within API methods.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the \u003ccode\u003eSystemParameters\u003c/code\u003e class is 2.15.0, with previous versions 2.10.0 and 2.2.0 also available.\u003c/p\u003e\n"],["\u003cp\u003eSystem parameters can be defined with rules that specify which methods change the names of the system parameters, overriding the default parameters implemented by the system.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRules\u003c/code\u003e property allows for defining multiple system parameter rules, with the "last one wins" ordering determining which rule takes precedence.\u003c/p\u003e\n"]]],[],null,["# Class SystemParameters (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.SystemParameters)\n- [2.15.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.15.0/Google.Api.SystemParameters)\n- [2.10.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.10.0/Google.Api.SystemParameters)\n- [2.2.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.2.0/Google.Api.SystemParameters) \n\n public sealed class SystemParameters : IMessage\u003cSystemParameters\u003e, IEquatable\u003cSystemParameters\u003e, IDeepCloneable\u003cSystemParameters\u003e, IBufferMessage, IMessage\n\n### System parameter configuration\n\nA system parameter is a special kind of parameter defined by the API\nsystem, not by an individual API. It is typically mapped to an HTTP header\nand/or a URL query parameter. This configuration specifies which methods\nchange the names of the system parameters. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e SystemParameters \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[SystemParameters](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.SystemParameters), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[SystemParameters](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.SystemParameters), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[SystemParameters](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.SystemParameters), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)\n\nNamespace\n---------\n\n[Google.Api](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api)\n\nAssembly\n--------\n\nGoogle.Api.CommonProtos.dll\n\nConstructors\n------------\n\n### SystemParameters()\n\n public SystemParameters()\n\n### SystemParameters(SystemParameters)\n\n public SystemParameters(SystemParameters other)\n\nFields\n------\n\n### RulesFieldNumber\n\n public const int RulesFieldNumber = 1\n\nField number for the \"rules\" field.\n\nProperties\n----------\n\n### Descriptor\n\n public static MessageDescriptor Descriptor { get; }\n\n### Parser\n\n public static MessageParser\u003cSystemParameters\u003e Parser { get; }\n\n### Rules\n\n public RepeatedField\u003cSystemParameterRule\u003e Rules { get; }\n\nDefine system parameters.\n\nThe parameters defined here will override the default parameters\nimplemented by the system. If this field is missing from the service\nconfig, default system parameters will be used. Default system parameters\nand names is implementation-dependent.\n\nExample: define api key for all methods \n\n system_parameters\n rules:\n - selector: \"*\"\n parameters:\n - name: api_key\n url_query_parameter: api_key\n\nExample: define 2 api key names for a specific method. \n\n system_parameters\n rules:\n - selector: \"/ListShelves\"\n parameters:\n - name: api_key\n http_header: Api-Key1\n - name: api_key\n http_header: Api-Key2\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.\n\nMethods\n-------\n\n### CalculateSize()\n\n public int CalculateSize()\n\n### Clone()\n\n public SystemParameters Clone()\n\n### Equals(SystemParameters)\n\n public bool Equals(SystemParameters other)\n\n### Equals(object)\n\n public override bool Equals(object other)\n\n**Overrides** \n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object))\n\n### GetHashCode()\n\n public override int GetHashCode()\n\n**Overrides** \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)\n\n### MergeFrom(SystemParameters)\n\n public void MergeFrom(SystemParameters other)\n\n### MergeFrom(CodedInputStream)\n\n public void MergeFrom(CodedInputStream input)\n\n### ToString()\n\n public override string ToString()\n\n**Overrides** \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\n### WriteTo(CodedOutputStream)\n\n public void WriteTo(CodedOutputStream output)"]]