...

Source file src/go.opentelemetry.io/otel/semconv/v1.20.0/trace.go

Documentation: go.opentelemetry.io/otel/semconv/v1.20.0

     1  // Copyright The OpenTelemetry Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated from semantic convention specification. DO NOT EDIT.
    16  
    17  package semconv // import "go.opentelemetry.io/otel/semconv/v1.20.0"
    18  
    19  import "go.opentelemetry.io/otel/attribute"
    20  
    21  // The shared attributes used to report a single exception associated with a
    22  // span or log.
    23  const (
    24  	// ExceptionTypeKey is the attribute Key conforming to the "exception.type"
    25  	// semantic conventions. It represents the type of the exception (its
    26  	// fully-qualified class name, if applicable). The dynamic type of the
    27  	// exception should be preferred over the static type in languages that
    28  	// support it.
    29  	//
    30  	// Type: string
    31  	// RequirementLevel: Optional
    32  	// Stability: stable
    33  	// Examples: 'java.net.ConnectException', 'OSError'
    34  	ExceptionTypeKey = attribute.Key("exception.type")
    35  
    36  	// ExceptionMessageKey is the attribute Key conforming to the
    37  	// "exception.message" semantic conventions. It represents the exception
    38  	// message.
    39  	//
    40  	// Type: string
    41  	// RequirementLevel: Optional
    42  	// Stability: stable
    43  	// Examples: 'Division by zero', "Can't convert 'int' object to str
    44  	// implicitly"
    45  	ExceptionMessageKey = attribute.Key("exception.message")
    46  
    47  	// ExceptionStacktraceKey is the attribute Key conforming to the
    48  	// "exception.stacktrace" semantic conventions. It represents a stacktrace
    49  	// as a string in the natural representation for the language runtime. The
    50  	// representation is to be determined and documented by each language SIG.
    51  	//
    52  	// Type: string
    53  	// RequirementLevel: Optional
    54  	// Stability: stable
    55  	// Examples: 'Exception in thread "main" java.lang.RuntimeException: Test
    56  	// exception\\n at '
    57  	//  'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at '
    58  	//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\n at '
    59  	//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'
    60  	ExceptionStacktraceKey = attribute.Key("exception.stacktrace")
    61  )
    62  
    63  // ExceptionType returns an attribute KeyValue conforming to the
    64  // "exception.type" semantic conventions. It represents the type of the
    65  // exception (its fully-qualified class name, if applicable). The dynamic type
    66  // of the exception should be preferred over the static type in languages that
    67  // support it.
    68  func ExceptionType(val string) attribute.KeyValue {
    69  	return ExceptionTypeKey.String(val)
    70  }
    71  
    72  // ExceptionMessage returns an attribute KeyValue conforming to the
    73  // "exception.message" semantic conventions. It represents the exception
    74  // message.
    75  func ExceptionMessage(val string) attribute.KeyValue {
    76  	return ExceptionMessageKey.String(val)
    77  }
    78  
    79  // ExceptionStacktrace returns an attribute KeyValue conforming to the
    80  // "exception.stacktrace" semantic conventions. It represents a stacktrace as a
    81  // string in the natural representation for the language runtime. The
    82  // representation is to be determined and documented by each language SIG.
    83  func ExceptionStacktrace(val string) attribute.KeyValue {
    84  	return ExceptionStacktraceKey.String(val)
    85  }
    86  
    87  // The attributes described in this section are rather generic. They may be
    88  // used in any Log Record they apply to.
    89  const (
    90  	// LogRecordUIDKey is the attribute Key conforming to the "log.record.uid"
    91  	// semantic conventions. It represents a unique identifier for the Log
    92  	// Record.
    93  	//
    94  	// Type: string
    95  	// RequirementLevel: Optional
    96  	// Stability: stable
    97  	// Examples: '01ARZ3NDEKTSV4RRFFQ69G5FAV'
    98  	// Note: If an id is provided, other log records with the same id will be
    99  	// considered duplicates and can be removed safely. This means, that two
   100  	// distinguishable log records MUST have different values.
   101  	// The id MAY be an [Universally Unique Lexicographically Sortable
   102  	// Identifier (ULID)](https://github.com/ulid/spec), but other identifiers
   103  	// (e.g. UUID) may be used as needed.
   104  	LogRecordUIDKey = attribute.Key("log.record.uid")
   105  )
   106  
   107  // LogRecordUID returns an attribute KeyValue conforming to the
   108  // "log.record.uid" semantic conventions. It represents a unique identifier for
   109  // the Log Record.
   110  func LogRecordUID(val string) attribute.KeyValue {
   111  	return LogRecordUIDKey.String(val)
   112  }
   113  
   114  // Span attributes used by AWS Lambda (in addition to general `faas`
   115  // attributes).
   116  const (
   117  	// AWSLambdaInvokedARNKey is the attribute Key conforming to the
   118  	// "aws.lambda.invoked_arn" semantic conventions. It represents the full
   119  	// invoked ARN as provided on the `Context` passed to the function
   120  	// (`Lambda-Runtime-Invoked-Function-ARN` header on the
   121  	// `/runtime/invocation/next` applicable).
   122  	//
   123  	// Type: string
   124  	// RequirementLevel: Optional
   125  	// Stability: stable
   126  	// Examples: 'arn:aws:lambda:us-east-1:123456:function:myfunction:myalias'
   127  	// Note: This may be different from `cloud.resource_id` if an alias is
   128  	// involved.
   129  	AWSLambdaInvokedARNKey = attribute.Key("aws.lambda.invoked_arn")
   130  )
   131  
   132  // AWSLambdaInvokedARN returns an attribute KeyValue conforming to the
   133  // "aws.lambda.invoked_arn" semantic conventions. It represents the full
   134  // invoked ARN as provided on the `Context` passed to the function
   135  // (`Lambda-Runtime-Invoked-Function-ARN` header on the
   136  // `/runtime/invocation/next` applicable).
   137  func AWSLambdaInvokedARN(val string) attribute.KeyValue {
   138  	return AWSLambdaInvokedARNKey.String(val)
   139  }
   140  
   141  // Attributes for CloudEvents. CloudEvents is a specification on how to define
   142  // event data in a standard way. These attributes can be attached to spans when
   143  // performing operations with CloudEvents, regardless of the protocol being
   144  // used.
   145  const (
   146  	// CloudeventsEventIDKey is the attribute Key conforming to the
   147  	// "cloudevents.event_id" semantic conventions. It represents the
   148  	// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)
   149  	// uniquely identifies the event.
   150  	//
   151  	// Type: string
   152  	// RequirementLevel: Required
   153  	// Stability: stable
   154  	// Examples: '123e4567-e89b-12d3-a456-426614174000', '0001'
   155  	CloudeventsEventIDKey = attribute.Key("cloudevents.event_id")
   156  
   157  	// CloudeventsEventSourceKey is the attribute Key conforming to the
   158  	// "cloudevents.event_source" semantic conventions. It represents the
   159  	// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)
   160  	// identifies the context in which an event happened.
   161  	//
   162  	// Type: string
   163  	// RequirementLevel: Required
   164  	// Stability: stable
   165  	// Examples: 'https://github.com/cloudevents',
   166  	// '/cloudevents/spec/pull/123', 'my-service'
   167  	CloudeventsEventSourceKey = attribute.Key("cloudevents.event_source")
   168  
   169  	// CloudeventsEventSpecVersionKey is the attribute Key conforming to the
   170  	// "cloudevents.event_spec_version" semantic conventions. It represents the
   171  	// [version of the CloudEvents
   172  	// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)
   173  	// which the event uses.
   174  	//
   175  	// Type: string
   176  	// RequirementLevel: Optional
   177  	// Stability: stable
   178  	// Examples: '1.0'
   179  	CloudeventsEventSpecVersionKey = attribute.Key("cloudevents.event_spec_version")
   180  
   181  	// CloudeventsEventTypeKey is the attribute Key conforming to the
   182  	// "cloudevents.event_type" semantic conventions. It represents the
   183  	// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)
   184  	// contains a value describing the type of event related to the originating
   185  	// occurrence.
   186  	//
   187  	// Type: string
   188  	// RequirementLevel: Optional
   189  	// Stability: stable
   190  	// Examples: 'com.github.pull_request.opened',
   191  	// 'com.example.object.deleted.v2'
   192  	CloudeventsEventTypeKey = attribute.Key("cloudevents.event_type")
   193  
   194  	// CloudeventsEventSubjectKey is the attribute Key conforming to the
   195  	// "cloudevents.event_subject" semantic conventions. It represents the
   196  	// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)
   197  	// of the event in the context of the event producer (identified by
   198  	// source).
   199  	//
   200  	// Type: string
   201  	// RequirementLevel: Optional
   202  	// Stability: stable
   203  	// Examples: 'mynewfile.jpg'
   204  	CloudeventsEventSubjectKey = attribute.Key("cloudevents.event_subject")
   205  )
   206  
   207  // CloudeventsEventID returns an attribute KeyValue conforming to the
   208  // "cloudevents.event_id" semantic conventions. It represents the
   209  // [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)
   210  // uniquely identifies the event.
   211  func CloudeventsEventID(val string) attribute.KeyValue {
   212  	return CloudeventsEventIDKey.String(val)
   213  }
   214  
   215  // CloudeventsEventSource returns an attribute KeyValue conforming to the
   216  // "cloudevents.event_source" semantic conventions. It represents the
   217  // [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)
   218  // identifies the context in which an event happened.
   219  func CloudeventsEventSource(val string) attribute.KeyValue {
   220  	return CloudeventsEventSourceKey.String(val)
   221  }
   222  
   223  // CloudeventsEventSpecVersion returns an attribute KeyValue conforming to
   224  // the "cloudevents.event_spec_version" semantic conventions. It represents the
   225  // [version of the CloudEvents
   226  // specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)
   227  // which the event uses.
   228  func CloudeventsEventSpecVersion(val string) attribute.KeyValue {
   229  	return CloudeventsEventSpecVersionKey.String(val)
   230  }
   231  
   232  // CloudeventsEventType returns an attribute KeyValue conforming to the
   233  // "cloudevents.event_type" semantic conventions. It represents the
   234  // [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)
   235  // contains a value describing the type of event related to the originating
   236  // occurrence.
   237  func CloudeventsEventType(val string) attribute.KeyValue {
   238  	return CloudeventsEventTypeKey.String(val)
   239  }
   240  
   241  // CloudeventsEventSubject returns an attribute KeyValue conforming to the
   242  // "cloudevents.event_subject" semantic conventions. It represents the
   243  // [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)
   244  // of the event in the context of the event producer (identified by source).
   245  func CloudeventsEventSubject(val string) attribute.KeyValue {
   246  	return CloudeventsEventSubjectKey.String(val)
   247  }
   248  
   249  // Semantic conventions for the OpenTracing Shim
   250  const (
   251  	// OpentracingRefTypeKey is the attribute Key conforming to the
   252  	// "opentracing.ref_type" semantic conventions. It represents the
   253  	// parent-child Reference type
   254  	//
   255  	// Type: Enum
   256  	// RequirementLevel: Optional
   257  	// Stability: stable
   258  	// Note: The causal relationship between a child Span and a parent Span.
   259  	OpentracingRefTypeKey = attribute.Key("opentracing.ref_type")
   260  )
   261  
   262  var (
   263  	// The parent Span depends on the child Span in some capacity
   264  	OpentracingRefTypeChildOf = OpentracingRefTypeKey.String("child_of")
   265  	// The parent Span does not depend in any way on the result of the child Span
   266  	OpentracingRefTypeFollowsFrom = OpentracingRefTypeKey.String("follows_from")
   267  )
   268  
   269  // The attributes used to perform database client calls.
   270  const (
   271  	// DBSystemKey is the attribute Key conforming to the "db.system" semantic
   272  	// conventions. It represents an identifier for the database management
   273  	// system (DBMS) product being used. See below for a list of well-known
   274  	// identifiers.
   275  	//
   276  	// Type: Enum
   277  	// RequirementLevel: Required
   278  	// Stability: stable
   279  	DBSystemKey = attribute.Key("db.system")
   280  
   281  	// DBConnectionStringKey is the attribute Key conforming to the
   282  	// "db.connection_string" semantic conventions. It represents the
   283  	// connection string used to connect to the database. It is recommended to
   284  	// remove embedded credentials.
   285  	//
   286  	// Type: string
   287  	// RequirementLevel: Optional
   288  	// Stability: stable
   289  	// Examples: 'Server=(localdb)\\v11.0;Integrated Security=true;'
   290  	DBConnectionStringKey = attribute.Key("db.connection_string")
   291  
   292  	// DBUserKey is the attribute Key conforming to the "db.user" semantic
   293  	// conventions. It represents the username for accessing the database.
   294  	//
   295  	// Type: string
   296  	// RequirementLevel: Optional
   297  	// Stability: stable
   298  	// Examples: 'readonly_user', 'reporting_user'
   299  	DBUserKey = attribute.Key("db.user")
   300  
   301  	// DBJDBCDriverClassnameKey is the attribute Key conforming to the
   302  	// "db.jdbc.driver_classname" semantic conventions. It represents the
   303  	// fully-qualified class name of the [Java Database Connectivity
   304  	// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/)
   305  	// driver used to connect.
   306  	//
   307  	// Type: string
   308  	// RequirementLevel: Optional
   309  	// Stability: stable
   310  	// Examples: 'org.postgresql.Driver',
   311  	// 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
   312  	DBJDBCDriverClassnameKey = attribute.Key("db.jdbc.driver_classname")
   313  
   314  	// DBNameKey is the attribute Key conforming to the "db.name" semantic
   315  	// conventions. It represents the this attribute is used to report the name
   316  	// of the database being accessed. For commands that switch the database,
   317  	// this should be set to the target database (even if the command fails).
   318  	//
   319  	// Type: string
   320  	// RequirementLevel: ConditionallyRequired (If applicable.)
   321  	// Stability: stable
   322  	// Examples: 'customers', 'main'
   323  	// Note: In some SQL databases, the database name to be used is called
   324  	// "schema name". In case there are multiple layers that could be
   325  	// considered for database name (e.g. Oracle instance name and schema
   326  	// name), the database name to be used is the more specific layer (e.g.
   327  	// Oracle schema name).
   328  	DBNameKey = attribute.Key("db.name")
   329  
   330  	// DBStatementKey is the attribute Key conforming to the "db.statement"
   331  	// semantic conventions. It represents the database statement being
   332  	// executed.
   333  	//
   334  	// Type: string
   335  	// RequirementLevel: Recommended (Should be collected by default only if
   336  	// there is sanitization that excludes sensitive information.)
   337  	// Stability: stable
   338  	// Examples: 'SELECT * FROM wuser_table', 'SET mykey "WuValue"'
   339  	DBStatementKey = attribute.Key("db.statement")
   340  
   341  	// DBOperationKey is the attribute Key conforming to the "db.operation"
   342  	// semantic conventions. It represents the name of the operation being
   343  	// executed, e.g. the [MongoDB command
   344  	// name](https://docs.mongodb.com/manual/reference/command/#database-operations)
   345  	// such as `findAndModify`, or the SQL keyword.
   346  	//
   347  	// Type: string
   348  	// RequirementLevel: ConditionallyRequired (If `db.statement` is not
   349  	// applicable.)
   350  	// Stability: stable
   351  	// Examples: 'findAndModify', 'HMSET', 'SELECT'
   352  	// Note: When setting this to an SQL keyword, it is not recommended to
   353  	// attempt any client-side parsing of `db.statement` just to get this
   354  	// property, but it should be set if the operation name is provided by the
   355  	// library being instrumented. If the SQL statement has an ambiguous
   356  	// operation, or performs more than one operation, this value may be
   357  	// omitted.
   358  	DBOperationKey = attribute.Key("db.operation")
   359  )
   360  
   361  var (
   362  	// Some other SQL database. Fallback only. See notes
   363  	DBSystemOtherSQL = DBSystemKey.String("other_sql")
   364  	// Microsoft SQL Server
   365  	DBSystemMSSQL = DBSystemKey.String("mssql")
   366  	// Microsoft SQL Server Compact
   367  	DBSystemMssqlcompact = DBSystemKey.String("mssqlcompact")
   368  	// MySQL
   369  	DBSystemMySQL = DBSystemKey.String("mysql")
   370  	// Oracle Database
   371  	DBSystemOracle = DBSystemKey.String("oracle")
   372  	// IBM DB2
   373  	DBSystemDB2 = DBSystemKey.String("db2")
   374  	// PostgreSQL
   375  	DBSystemPostgreSQL = DBSystemKey.String("postgresql")
   376  	// Amazon Redshift
   377  	DBSystemRedshift = DBSystemKey.String("redshift")
   378  	// Apache Hive
   379  	DBSystemHive = DBSystemKey.String("hive")
   380  	// Cloudscape
   381  	DBSystemCloudscape = DBSystemKey.String("cloudscape")
   382  	// HyperSQL DataBase
   383  	DBSystemHSQLDB = DBSystemKey.String("hsqldb")
   384  	// Progress Database
   385  	DBSystemProgress = DBSystemKey.String("progress")
   386  	// SAP MaxDB
   387  	DBSystemMaxDB = DBSystemKey.String("maxdb")
   388  	// SAP HANA
   389  	DBSystemHanaDB = DBSystemKey.String("hanadb")
   390  	// Ingres
   391  	DBSystemIngres = DBSystemKey.String("ingres")
   392  	// FirstSQL
   393  	DBSystemFirstSQL = DBSystemKey.String("firstsql")
   394  	// EnterpriseDB
   395  	DBSystemEDB = DBSystemKey.String("edb")
   396  	// InterSystems Caché
   397  	DBSystemCache = DBSystemKey.String("cache")
   398  	// Adabas (Adaptable Database System)
   399  	DBSystemAdabas = DBSystemKey.String("adabas")
   400  	// Firebird
   401  	DBSystemFirebird = DBSystemKey.String("firebird")
   402  	// Apache Derby
   403  	DBSystemDerby = DBSystemKey.String("derby")
   404  	// FileMaker
   405  	DBSystemFilemaker = DBSystemKey.String("filemaker")
   406  	// Informix
   407  	DBSystemInformix = DBSystemKey.String("informix")
   408  	// InstantDB
   409  	DBSystemInstantDB = DBSystemKey.String("instantdb")
   410  	// InterBase
   411  	DBSystemInterbase = DBSystemKey.String("interbase")
   412  	// MariaDB
   413  	DBSystemMariaDB = DBSystemKey.String("mariadb")
   414  	// Netezza
   415  	DBSystemNetezza = DBSystemKey.String("netezza")
   416  	// Pervasive PSQL
   417  	DBSystemPervasive = DBSystemKey.String("pervasive")
   418  	// PointBase
   419  	DBSystemPointbase = DBSystemKey.String("pointbase")
   420  	// SQLite
   421  	DBSystemSqlite = DBSystemKey.String("sqlite")
   422  	// Sybase
   423  	DBSystemSybase = DBSystemKey.String("sybase")
   424  	// Teradata
   425  	DBSystemTeradata = DBSystemKey.String("teradata")
   426  	// Vertica
   427  	DBSystemVertica = DBSystemKey.String("vertica")
   428  	// H2
   429  	DBSystemH2 = DBSystemKey.String("h2")
   430  	// ColdFusion IMQ
   431  	DBSystemColdfusion = DBSystemKey.String("coldfusion")
   432  	// Apache Cassandra
   433  	DBSystemCassandra = DBSystemKey.String("cassandra")
   434  	// Apache HBase
   435  	DBSystemHBase = DBSystemKey.String("hbase")
   436  	// MongoDB
   437  	DBSystemMongoDB = DBSystemKey.String("mongodb")
   438  	// Redis
   439  	DBSystemRedis = DBSystemKey.String("redis")
   440  	// Couchbase
   441  	DBSystemCouchbase = DBSystemKey.String("couchbase")
   442  	// CouchDB
   443  	DBSystemCouchDB = DBSystemKey.String("couchdb")
   444  	// Microsoft Azure Cosmos DB
   445  	DBSystemCosmosDB = DBSystemKey.String("cosmosdb")
   446  	// Amazon DynamoDB
   447  	DBSystemDynamoDB = DBSystemKey.String("dynamodb")
   448  	// Neo4j
   449  	DBSystemNeo4j = DBSystemKey.String("neo4j")
   450  	// Apache Geode
   451  	DBSystemGeode = DBSystemKey.String("geode")
   452  	// Elasticsearch
   453  	DBSystemElasticsearch = DBSystemKey.String("elasticsearch")
   454  	// Memcached
   455  	DBSystemMemcached = DBSystemKey.String("memcached")
   456  	// CockroachDB
   457  	DBSystemCockroachdb = DBSystemKey.String("cockroachdb")
   458  	// OpenSearch
   459  	DBSystemOpensearch = DBSystemKey.String("opensearch")
   460  	// ClickHouse
   461  	DBSystemClickhouse = DBSystemKey.String("clickhouse")
   462  	// Cloud Spanner
   463  	DBSystemSpanner = DBSystemKey.String("spanner")
   464  	// Trino
   465  	DBSystemTrino = DBSystemKey.String("trino")
   466  )
   467  
   468  // DBConnectionString returns an attribute KeyValue conforming to the
   469  // "db.connection_string" semantic conventions. It represents the connection
   470  // string used to connect to the database. It is recommended to remove embedded
   471  // credentials.
   472  func DBConnectionString(val string) attribute.KeyValue {
   473  	return DBConnectionStringKey.String(val)
   474  }
   475  
   476  // DBUser returns an attribute KeyValue conforming to the "db.user" semantic
   477  // conventions. It represents the username for accessing the database.
   478  func DBUser(val string) attribute.KeyValue {
   479  	return DBUserKey.String(val)
   480  }
   481  
   482  // DBJDBCDriverClassname returns an attribute KeyValue conforming to the
   483  // "db.jdbc.driver_classname" semantic conventions. It represents the
   484  // fully-qualified class name of the [Java Database Connectivity
   485  // (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver
   486  // used to connect.
   487  func DBJDBCDriverClassname(val string) attribute.KeyValue {
   488  	return DBJDBCDriverClassnameKey.String(val)
   489  }
   490  
   491  // DBName returns an attribute KeyValue conforming to the "db.name" semantic
   492  // conventions. It represents the this attribute is used to report the name of
   493  // the database being accessed. For commands that switch the database, this
   494  // should be set to the target database (even if the command fails).
   495  func DBName(val string) attribute.KeyValue {
   496  	return DBNameKey.String(val)
   497  }
   498  
   499  // DBStatement returns an attribute KeyValue conforming to the
   500  // "db.statement" semantic conventions. It represents the database statement
   501  // being executed.
   502  func DBStatement(val string) attribute.KeyValue {
   503  	return DBStatementKey.String(val)
   504  }
   505  
   506  // DBOperation returns an attribute KeyValue conforming to the
   507  // "db.operation" semantic conventions. It represents the name of the operation
   508  // being executed, e.g. the [MongoDB command
   509  // name](https://docs.mongodb.com/manual/reference/command/#database-operations)
   510  // such as `findAndModify`, or the SQL keyword.
   511  func DBOperation(val string) attribute.KeyValue {
   512  	return DBOperationKey.String(val)
   513  }
   514  
   515  // Connection-level attributes for Microsoft SQL Server
   516  const (
   517  	// DBMSSQLInstanceNameKey is the attribute Key conforming to the
   518  	// "db.mssql.instance_name" semantic conventions. It represents the
   519  	// Microsoft SQL Server [instance
   520  	// name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)
   521  	// connecting to. This name is used to determine the port of a named
   522  	// instance.
   523  	//
   524  	// Type: string
   525  	// RequirementLevel: Optional
   526  	// Stability: stable
   527  	// Examples: 'MSSQLSERVER'
   528  	// Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no
   529  	// longer required (but still recommended if non-standard).
   530  	DBMSSQLInstanceNameKey = attribute.Key("db.mssql.instance_name")
   531  )
   532  
   533  // DBMSSQLInstanceName returns an attribute KeyValue conforming to the
   534  // "db.mssql.instance_name" semantic conventions. It represents the Microsoft
   535  // SQL Server [instance
   536  // name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)
   537  // connecting to. This name is used to determine the port of a named instance.
   538  func DBMSSQLInstanceName(val string) attribute.KeyValue {
   539  	return DBMSSQLInstanceNameKey.String(val)
   540  }
   541  
   542  // Call-level attributes for Cassandra
   543  const (
   544  	// DBCassandraPageSizeKey is the attribute Key conforming to the
   545  	// "db.cassandra.page_size" semantic conventions. It represents the fetch
   546  	// size used for paging, i.e. how many rows will be returned at once.
   547  	//
   548  	// Type: int
   549  	// RequirementLevel: Optional
   550  	// Stability: stable
   551  	// Examples: 5000
   552  	DBCassandraPageSizeKey = attribute.Key("db.cassandra.page_size")
   553  
   554  	// DBCassandraConsistencyLevelKey is the attribute Key conforming to the
   555  	// "db.cassandra.consistency_level" semantic conventions. It represents the
   556  	// consistency level of the query. Based on consistency values from
   557  	// [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).
   558  	//
   559  	// Type: Enum
   560  	// RequirementLevel: Optional
   561  	// Stability: stable
   562  	DBCassandraConsistencyLevelKey = attribute.Key("db.cassandra.consistency_level")
   563  
   564  	// DBCassandraTableKey is the attribute Key conforming to the
   565  	// "db.cassandra.table" semantic conventions. It represents the name of the
   566  	// primary table that the operation is acting upon, including the keyspace
   567  	// name (if applicable).
   568  	//
   569  	// Type: string
   570  	// RequirementLevel: Recommended
   571  	// Stability: stable
   572  	// Examples: 'mytable'
   573  	// Note: This mirrors the db.sql.table attribute but references cassandra
   574  	// rather than sql. It is not recommended to attempt any client-side
   575  	// parsing of `db.statement` just to get this property, but it should be
   576  	// set if it is provided by the library being instrumented. If the
   577  	// operation is acting upon an anonymous table, or more than one table,
   578  	// this value MUST NOT be set.
   579  	DBCassandraTableKey = attribute.Key("db.cassandra.table")
   580  
   581  	// DBCassandraIdempotenceKey is the attribute Key conforming to the
   582  	// "db.cassandra.idempotence" semantic conventions. It represents the
   583  	// whether or not the query is idempotent.
   584  	//
   585  	// Type: boolean
   586  	// RequirementLevel: Optional
   587  	// Stability: stable
   588  	DBCassandraIdempotenceKey = attribute.Key("db.cassandra.idempotence")
   589  
   590  	// DBCassandraSpeculativeExecutionCountKey is the attribute Key conforming
   591  	// to the "db.cassandra.speculative_execution_count" semantic conventions.
   592  	// It represents the number of times a query was speculatively executed.
   593  	// Not set or `0` if the query was not executed speculatively.
   594  	//
   595  	// Type: int
   596  	// RequirementLevel: Optional
   597  	// Stability: stable
   598  	// Examples: 0, 2
   599  	DBCassandraSpeculativeExecutionCountKey = attribute.Key("db.cassandra.speculative_execution_count")
   600  
   601  	// DBCassandraCoordinatorIDKey is the attribute Key conforming to the
   602  	// "db.cassandra.coordinator.id" semantic conventions. It represents the ID
   603  	// of the coordinating node for a query.
   604  	//
   605  	// Type: string
   606  	// RequirementLevel: Optional
   607  	// Stability: stable
   608  	// Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af'
   609  	DBCassandraCoordinatorIDKey = attribute.Key("db.cassandra.coordinator.id")
   610  
   611  	// DBCassandraCoordinatorDCKey is the attribute Key conforming to the
   612  	// "db.cassandra.coordinator.dc" semantic conventions. It represents the
   613  	// data center of the coordinating node for a query.
   614  	//
   615  	// Type: string
   616  	// RequirementLevel: Optional
   617  	// Stability: stable
   618  	// Examples: 'us-west-2'
   619  	DBCassandraCoordinatorDCKey = attribute.Key("db.cassandra.coordinator.dc")
   620  )
   621  
   622  var (
   623  	// all
   624  	DBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String("all")
   625  	// each_quorum
   626  	DBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String("each_quorum")
   627  	// quorum
   628  	DBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String("quorum")
   629  	// local_quorum
   630  	DBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String("local_quorum")
   631  	// one
   632  	DBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String("one")
   633  	// two
   634  	DBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String("two")
   635  	// three
   636  	DBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String("three")
   637  	// local_one
   638  	DBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String("local_one")
   639  	// any
   640  	DBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String("any")
   641  	// serial
   642  	DBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String("serial")
   643  	// local_serial
   644  	DBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String("local_serial")
   645  )
   646  
   647  // DBCassandraPageSize returns an attribute KeyValue conforming to the
   648  // "db.cassandra.page_size" semantic conventions. It represents the fetch size
   649  // used for paging, i.e. how many rows will be returned at once.
   650  func DBCassandraPageSize(val int) attribute.KeyValue {
   651  	return DBCassandraPageSizeKey.Int(val)
   652  }
   653  
   654  // DBCassandraTable returns an attribute KeyValue conforming to the
   655  // "db.cassandra.table" semantic conventions. It represents the name of the
   656  // primary table that the operation is acting upon, including the keyspace name
   657  // (if applicable).
   658  func DBCassandraTable(val string) attribute.KeyValue {
   659  	return DBCassandraTableKey.String(val)
   660  }
   661  
   662  // DBCassandraIdempotence returns an attribute KeyValue conforming to the
   663  // "db.cassandra.idempotence" semantic conventions. It represents the whether
   664  // or not the query is idempotent.
   665  func DBCassandraIdempotence(val bool) attribute.KeyValue {
   666  	return DBCassandraIdempotenceKey.Bool(val)
   667  }
   668  
   669  // DBCassandraSpeculativeExecutionCount returns an attribute KeyValue
   670  // conforming to the "db.cassandra.speculative_execution_count" semantic
   671  // conventions. It represents the number of times a query was speculatively
   672  // executed. Not set or `0` if the query was not executed speculatively.
   673  func DBCassandraSpeculativeExecutionCount(val int) attribute.KeyValue {
   674  	return DBCassandraSpeculativeExecutionCountKey.Int(val)
   675  }
   676  
   677  // DBCassandraCoordinatorID returns an attribute KeyValue conforming to the
   678  // "db.cassandra.coordinator.id" semantic conventions. It represents the ID of
   679  // the coordinating node for a query.
   680  func DBCassandraCoordinatorID(val string) attribute.KeyValue {
   681  	return DBCassandraCoordinatorIDKey.String(val)
   682  }
   683  
   684  // DBCassandraCoordinatorDC returns an attribute KeyValue conforming to the
   685  // "db.cassandra.coordinator.dc" semantic conventions. It represents the data
   686  // center of the coordinating node for a query.
   687  func DBCassandraCoordinatorDC(val string) attribute.KeyValue {
   688  	return DBCassandraCoordinatorDCKey.String(val)
   689  }
   690  
   691  // Call-level attributes for Redis
   692  const (
   693  	// DBRedisDBIndexKey is the attribute Key conforming to the
   694  	// "db.redis.database_index" semantic conventions. It represents the index
   695  	// of the database being accessed as used in the [`SELECT`
   696  	// command](https://redis.io/commands/select), provided as an integer. To
   697  	// be used instead of the generic `db.name` attribute.
   698  	//
   699  	// Type: int
   700  	// RequirementLevel: ConditionallyRequired (If other than the default
   701  	// database (`0`).)
   702  	// Stability: stable
   703  	// Examples: 0, 1, 15
   704  	DBRedisDBIndexKey = attribute.Key("db.redis.database_index")
   705  )
   706  
   707  // DBRedisDBIndex returns an attribute KeyValue conforming to the
   708  // "db.redis.database_index" semantic conventions. It represents the index of
   709  // the database being accessed as used in the [`SELECT`
   710  // command](https://redis.io/commands/select), provided as an integer. To be
   711  // used instead of the generic `db.name` attribute.
   712  func DBRedisDBIndex(val int) attribute.KeyValue {
   713  	return DBRedisDBIndexKey.Int(val)
   714  }
   715  
   716  // Call-level attributes for MongoDB
   717  const (
   718  	// DBMongoDBCollectionKey is the attribute Key conforming to the
   719  	// "db.mongodb.collection" semantic conventions. It represents the
   720  	// collection being accessed within the database stated in `db.name`.
   721  	//
   722  	// Type: string
   723  	// RequirementLevel: Required
   724  	// Stability: stable
   725  	// Examples: 'customers', 'products'
   726  	DBMongoDBCollectionKey = attribute.Key("db.mongodb.collection")
   727  )
   728  
   729  // DBMongoDBCollection returns an attribute KeyValue conforming to the
   730  // "db.mongodb.collection" semantic conventions. It represents the collection
   731  // being accessed within the database stated in `db.name`.
   732  func DBMongoDBCollection(val string) attribute.KeyValue {
   733  	return DBMongoDBCollectionKey.String(val)
   734  }
   735  
   736  // Call-level attributes for SQL databases
   737  const (
   738  	// DBSQLTableKey is the attribute Key conforming to the "db.sql.table"
   739  	// semantic conventions. It represents the name of the primary table that
   740  	// the operation is acting upon, including the database name (if
   741  	// applicable).
   742  	//
   743  	// Type: string
   744  	// RequirementLevel: Recommended
   745  	// Stability: stable
   746  	// Examples: 'public.users', 'customers'
   747  	// Note: It is not recommended to attempt any client-side parsing of
   748  	// `db.statement` just to get this property, but it should be set if it is
   749  	// provided by the library being instrumented. If the operation is acting
   750  	// upon an anonymous table, or more than one table, this value MUST NOT be
   751  	// set.
   752  	DBSQLTableKey = attribute.Key("db.sql.table")
   753  )
   754  
   755  // DBSQLTable returns an attribute KeyValue conforming to the "db.sql.table"
   756  // semantic conventions. It represents the name of the primary table that the
   757  // operation is acting upon, including the database name (if applicable).
   758  func DBSQLTable(val string) attribute.KeyValue {
   759  	return DBSQLTableKey.String(val)
   760  }
   761  
   762  // Call-level attributes for Cosmos DB.
   763  const (
   764  	// DBCosmosDBClientIDKey is the attribute Key conforming to the
   765  	// "db.cosmosdb.client_id" semantic conventions. It represents the unique
   766  	// Cosmos client instance id.
   767  	//
   768  	// Type: string
   769  	// RequirementLevel: Optional
   770  	// Stability: stable
   771  	// Examples: '3ba4827d-4422-483f-b59f-85b74211c11d'
   772  	DBCosmosDBClientIDKey = attribute.Key("db.cosmosdb.client_id")
   773  
   774  	// DBCosmosDBOperationTypeKey is the attribute Key conforming to the
   775  	// "db.cosmosdb.operation_type" semantic conventions. It represents the
   776  	// cosmosDB Operation Type.
   777  	//
   778  	// Type: Enum
   779  	// RequirementLevel: ConditionallyRequired (when performing one of the
   780  	// operations in this list)
   781  	// Stability: stable
   782  	DBCosmosDBOperationTypeKey = attribute.Key("db.cosmosdb.operation_type")
   783  
   784  	// DBCosmosDBConnectionModeKey is the attribute Key conforming to the
   785  	// "db.cosmosdb.connection_mode" semantic conventions. It represents the
   786  	// cosmos client connection mode.
   787  	//
   788  	// Type: Enum
   789  	// RequirementLevel: ConditionallyRequired (if not `direct` (or pick gw as
   790  	// default))
   791  	// Stability: stable
   792  	DBCosmosDBConnectionModeKey = attribute.Key("db.cosmosdb.connection_mode")
   793  
   794  	// DBCosmosDBContainerKey is the attribute Key conforming to the
   795  	// "db.cosmosdb.container" semantic conventions. It represents the cosmos
   796  	// DB container name.
   797  	//
   798  	// Type: string
   799  	// RequirementLevel: ConditionallyRequired (if available)
   800  	// Stability: stable
   801  	// Examples: 'anystring'
   802  	DBCosmosDBContainerKey = attribute.Key("db.cosmosdb.container")
   803  
   804  	// DBCosmosDBRequestContentLengthKey is the attribute Key conforming to the
   805  	// "db.cosmosdb.request_content_length" semantic conventions. It represents
   806  	// the request payload size in bytes
   807  	//
   808  	// Type: int
   809  	// RequirementLevel: Optional
   810  	// Stability: stable
   811  	DBCosmosDBRequestContentLengthKey = attribute.Key("db.cosmosdb.request_content_length")
   812  
   813  	// DBCosmosDBStatusCodeKey is the attribute Key conforming to the
   814  	// "db.cosmosdb.status_code" semantic conventions. It represents the cosmos
   815  	// DB status code.
   816  	//
   817  	// Type: int
   818  	// RequirementLevel: ConditionallyRequired (if response was received)
   819  	// Stability: stable
   820  	// Examples: 200, 201
   821  	DBCosmosDBStatusCodeKey = attribute.Key("db.cosmosdb.status_code")
   822  
   823  	// DBCosmosDBSubStatusCodeKey is the attribute Key conforming to the
   824  	// "db.cosmosdb.sub_status_code" semantic conventions. It represents the
   825  	// cosmos DB sub status code.
   826  	//
   827  	// Type: int
   828  	// RequirementLevel: ConditionallyRequired (when response was received and
   829  	// contained sub-code.)
   830  	// Stability: stable
   831  	// Examples: 1000, 1002
   832  	DBCosmosDBSubStatusCodeKey = attribute.Key("db.cosmosdb.sub_status_code")
   833  
   834  	// DBCosmosDBRequestChargeKey is the attribute Key conforming to the
   835  	// "db.cosmosdb.request_charge" semantic conventions. It represents the rU
   836  	// consumed for that operation
   837  	//
   838  	// Type: double
   839  	// RequirementLevel: ConditionallyRequired (when available)
   840  	// Stability: stable
   841  	// Examples: 46.18, 1.0
   842  	DBCosmosDBRequestChargeKey = attribute.Key("db.cosmosdb.request_charge")
   843  )
   844  
   845  var (
   846  	// invalid
   847  	DBCosmosDBOperationTypeInvalid = DBCosmosDBOperationTypeKey.String("Invalid")
   848  	// create
   849  	DBCosmosDBOperationTypeCreate = DBCosmosDBOperationTypeKey.String("Create")
   850  	// patch
   851  	DBCosmosDBOperationTypePatch = DBCosmosDBOperationTypeKey.String("Patch")
   852  	// read
   853  	DBCosmosDBOperationTypeRead = DBCosmosDBOperationTypeKey.String("Read")
   854  	// read_feed
   855  	DBCosmosDBOperationTypeReadFeed = DBCosmosDBOperationTypeKey.String("ReadFeed")
   856  	// delete
   857  	DBCosmosDBOperationTypeDelete = DBCosmosDBOperationTypeKey.String("Delete")
   858  	// replace
   859  	DBCosmosDBOperationTypeReplace = DBCosmosDBOperationTypeKey.String("Replace")
   860  	// execute
   861  	DBCosmosDBOperationTypeExecute = DBCosmosDBOperationTypeKey.String("Execute")
   862  	// query
   863  	DBCosmosDBOperationTypeQuery = DBCosmosDBOperationTypeKey.String("Query")
   864  	// head
   865  	DBCosmosDBOperationTypeHead = DBCosmosDBOperationTypeKey.String("Head")
   866  	// head_feed
   867  	DBCosmosDBOperationTypeHeadFeed = DBCosmosDBOperationTypeKey.String("HeadFeed")
   868  	// upsert
   869  	DBCosmosDBOperationTypeUpsert = DBCosmosDBOperationTypeKey.String("Upsert")
   870  	// batch
   871  	DBCosmosDBOperationTypeBatch = DBCosmosDBOperationTypeKey.String("Batch")
   872  	// query_plan
   873  	DBCosmosDBOperationTypeQueryPlan = DBCosmosDBOperationTypeKey.String("QueryPlan")
   874  	// execute_javascript
   875  	DBCosmosDBOperationTypeExecuteJavascript = DBCosmosDBOperationTypeKey.String("ExecuteJavaScript")
   876  )
   877  
   878  var (
   879  	// Gateway (HTTP) connections mode
   880  	DBCosmosDBConnectionModeGateway = DBCosmosDBConnectionModeKey.String("gateway")
   881  	// Direct connection
   882  	DBCosmosDBConnectionModeDirect = DBCosmosDBConnectionModeKey.String("direct")
   883  )
   884  
   885  // DBCosmosDBClientID returns an attribute KeyValue conforming to the
   886  // "db.cosmosdb.client_id" semantic conventions. It represents the unique
   887  // Cosmos client instance id.
   888  func DBCosmosDBClientID(val string) attribute.KeyValue {
   889  	return DBCosmosDBClientIDKey.String(val)
   890  }
   891  
   892  // DBCosmosDBContainer returns an attribute KeyValue conforming to the
   893  // "db.cosmosdb.container" semantic conventions. It represents the cosmos DB
   894  // container name.
   895  func DBCosmosDBContainer(val string) attribute.KeyValue {
   896  	return DBCosmosDBContainerKey.String(val)
   897  }
   898  
   899  // DBCosmosDBRequestContentLength returns an attribute KeyValue conforming
   900  // to the "db.cosmosdb.request_content_length" semantic conventions. It
   901  // represents the request payload size in bytes
   902  func DBCosmosDBRequestContentLength(val int) attribute.KeyValue {
   903  	return DBCosmosDBRequestContentLengthKey.Int(val)
   904  }
   905  
   906  // DBCosmosDBStatusCode returns an attribute KeyValue conforming to the
   907  // "db.cosmosdb.status_code" semantic conventions. It represents the cosmos DB
   908  // status code.
   909  func DBCosmosDBStatusCode(val int) attribute.KeyValue {
   910  	return DBCosmosDBStatusCodeKey.Int(val)
   911  }
   912  
   913  // DBCosmosDBSubStatusCode returns an attribute KeyValue conforming to the
   914  // "db.cosmosdb.sub_status_code" semantic conventions. It represents the cosmos
   915  // DB sub status code.
   916  func DBCosmosDBSubStatusCode(val int) attribute.KeyValue {
   917  	return DBCosmosDBSubStatusCodeKey.Int(val)
   918  }
   919  
   920  // DBCosmosDBRequestCharge returns an attribute KeyValue conforming to the
   921  // "db.cosmosdb.request_charge" semantic conventions. It represents the rU
   922  // consumed for that operation
   923  func DBCosmosDBRequestCharge(val float64) attribute.KeyValue {
   924  	return DBCosmosDBRequestChargeKey.Float64(val)
   925  }
   926  
   927  // Span attributes used by non-OTLP exporters to represent OpenTelemetry Span's
   928  // concepts.
   929  const (
   930  	// OTelStatusCodeKey is the attribute Key conforming to the
   931  	// "otel.status_code" semantic conventions. It represents the name of the
   932  	// code, either "OK" or "ERROR". MUST NOT be set if the status code is
   933  	// UNSET.
   934  	//
   935  	// Type: Enum
   936  	// RequirementLevel: Optional
   937  	// Stability: stable
   938  	OTelStatusCodeKey = attribute.Key("otel.status_code")
   939  
   940  	// OTelStatusDescriptionKey is the attribute Key conforming to the
   941  	// "otel.status_description" semantic conventions. It represents the
   942  	// description of the Status if it has a value, otherwise not set.
   943  	//
   944  	// Type: string
   945  	// RequirementLevel: Optional
   946  	// Stability: stable
   947  	// Examples: 'resource not found'
   948  	OTelStatusDescriptionKey = attribute.Key("otel.status_description")
   949  )
   950  
   951  var (
   952  	// The operation has been validated by an Application developer or Operator to have completed successfully
   953  	OTelStatusCodeOk = OTelStatusCodeKey.String("OK")
   954  	// The operation contains an error
   955  	OTelStatusCodeError = OTelStatusCodeKey.String("ERROR")
   956  )
   957  
   958  // OTelStatusDescription returns an attribute KeyValue conforming to the
   959  // "otel.status_description" semantic conventions. It represents the
   960  // description of the Status if it has a value, otherwise not set.
   961  func OTelStatusDescription(val string) attribute.KeyValue {
   962  	return OTelStatusDescriptionKey.String(val)
   963  }
   964  
   965  // This semantic convention describes an instance of a function that runs
   966  // without provisioning or managing of servers (also known as serverless
   967  // functions or Function as a Service (FaaS)) with spans.
   968  const (
   969  	// FaaSTriggerKey is the attribute Key conforming to the "faas.trigger"
   970  	// semantic conventions. It represents the type of the trigger which caused
   971  	// this function invocation.
   972  	//
   973  	// Type: Enum
   974  	// RequirementLevel: Optional
   975  	// Stability: stable
   976  	// Note: For the server/consumer span on the incoming side,
   977  	// `faas.trigger` MUST be set.
   978  	//
   979  	// Clients invoking FaaS instances usually cannot set `faas.trigger`,
   980  	// since they would typically need to look in the payload to determine
   981  	// the event type. If clients set it, it should be the same as the
   982  	// trigger that corresponding incoming would have (i.e., this has
   983  	// nothing to do with the underlying transport used to make the API
   984  	// call to invoke the lambda, which is often HTTP).
   985  	FaaSTriggerKey = attribute.Key("faas.trigger")
   986  
   987  	// FaaSInvocationIDKey is the attribute Key conforming to the
   988  	// "faas.invocation_id" semantic conventions. It represents the invocation
   989  	// ID of the current function invocation.
   990  	//
   991  	// Type: string
   992  	// RequirementLevel: Optional
   993  	// Stability: stable
   994  	// Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28'
   995  	FaaSInvocationIDKey = attribute.Key("faas.invocation_id")
   996  )
   997  
   998  var (
   999  	// A response to some data source operation such as a database or filesystem read/write
  1000  	FaaSTriggerDatasource = FaaSTriggerKey.String("datasource")
  1001  	// To provide an answer to an inbound HTTP request
  1002  	FaaSTriggerHTTP = FaaSTriggerKey.String("http")
  1003  	// A function is set to be executed when messages are sent to a messaging system
  1004  	FaaSTriggerPubsub = FaaSTriggerKey.String("pubsub")
  1005  	// A function is scheduled to be executed regularly
  1006  	FaaSTriggerTimer = FaaSTriggerKey.String("timer")
  1007  	// If none of the others apply
  1008  	FaaSTriggerOther = FaaSTriggerKey.String("other")
  1009  )
  1010  
  1011  // FaaSInvocationID returns an attribute KeyValue conforming to the
  1012  // "faas.invocation_id" semantic conventions. It represents the invocation ID
  1013  // of the current function invocation.
  1014  func FaaSInvocationID(val string) attribute.KeyValue {
  1015  	return FaaSInvocationIDKey.String(val)
  1016  }
  1017  
  1018  // Semantic Convention for FaaS triggered as a response to some data source
  1019  // operation such as a database or filesystem read/write.
  1020  const (
  1021  	// FaaSDocumentCollectionKey is the attribute Key conforming to the
  1022  	// "faas.document.collection" semantic conventions. It represents the name
  1023  	// of the source on which the triggering operation was performed. For
  1024  	// example, in Cloud Storage or S3 corresponds to the bucket name, and in
  1025  	// Cosmos DB to the database name.
  1026  	//
  1027  	// Type: string
  1028  	// RequirementLevel: Required
  1029  	// Stability: stable
  1030  	// Examples: 'myBucketName', 'myDBName'
  1031  	FaaSDocumentCollectionKey = attribute.Key("faas.document.collection")
  1032  
  1033  	// FaaSDocumentOperationKey is the attribute Key conforming to the
  1034  	// "faas.document.operation" semantic conventions. It represents the
  1035  	// describes the type of the operation that was performed on the data.
  1036  	//
  1037  	// Type: Enum
  1038  	// RequirementLevel: Required
  1039  	// Stability: stable
  1040  	FaaSDocumentOperationKey = attribute.Key("faas.document.operation")
  1041  
  1042  	// FaaSDocumentTimeKey is the attribute Key conforming to the
  1043  	// "faas.document.time" semantic conventions. It represents a string
  1044  	// containing the time when the data was accessed in the [ISO
  1045  	// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
  1046  	// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
  1047  	//
  1048  	// Type: string
  1049  	// RequirementLevel: Optional
  1050  	// Stability: stable
  1051  	// Examples: '2020-01-23T13:47:06Z'
  1052  	FaaSDocumentTimeKey = attribute.Key("faas.document.time")
  1053  
  1054  	// FaaSDocumentNameKey is the attribute Key conforming to the
  1055  	// "faas.document.name" semantic conventions. It represents the document
  1056  	// name/table subjected to the operation. For example, in Cloud Storage or
  1057  	// S3 is the name of the file, and in Cosmos DB the table name.
  1058  	//
  1059  	// Type: string
  1060  	// RequirementLevel: Optional
  1061  	// Stability: stable
  1062  	// Examples: 'myFile.txt', 'myTableName'
  1063  	FaaSDocumentNameKey = attribute.Key("faas.document.name")
  1064  )
  1065  
  1066  var (
  1067  	// When a new object is created
  1068  	FaaSDocumentOperationInsert = FaaSDocumentOperationKey.String("insert")
  1069  	// When an object is modified
  1070  	FaaSDocumentOperationEdit = FaaSDocumentOperationKey.String("edit")
  1071  	// When an object is deleted
  1072  	FaaSDocumentOperationDelete = FaaSDocumentOperationKey.String("delete")
  1073  )
  1074  
  1075  // FaaSDocumentCollection returns an attribute KeyValue conforming to the
  1076  // "faas.document.collection" semantic conventions. It represents the name of
  1077  // the source on which the triggering operation was performed. For example, in
  1078  // Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the
  1079  // database name.
  1080  func FaaSDocumentCollection(val string) attribute.KeyValue {
  1081  	return FaaSDocumentCollectionKey.String(val)
  1082  }
  1083  
  1084  // FaaSDocumentTime returns an attribute KeyValue conforming to the
  1085  // "faas.document.time" semantic conventions. It represents a string containing
  1086  // the time when the data was accessed in the [ISO
  1087  // 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
  1088  // expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
  1089  func FaaSDocumentTime(val string) attribute.KeyValue {
  1090  	return FaaSDocumentTimeKey.String(val)
  1091  }
  1092  
  1093  // FaaSDocumentName returns an attribute KeyValue conforming to the
  1094  // "faas.document.name" semantic conventions. It represents the document
  1095  // name/table subjected to the operation. For example, in Cloud Storage or S3
  1096  // is the name of the file, and in Cosmos DB the table name.
  1097  func FaaSDocumentName(val string) attribute.KeyValue {
  1098  	return FaaSDocumentNameKey.String(val)
  1099  }
  1100  
  1101  // Semantic Convention for FaaS scheduled to be executed regularly.
  1102  const (
  1103  	// FaaSTimeKey is the attribute Key conforming to the "faas.time" semantic
  1104  	// conventions. It represents a string containing the function invocation
  1105  	// time in the [ISO
  1106  	// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
  1107  	// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
  1108  	//
  1109  	// Type: string
  1110  	// RequirementLevel: Optional
  1111  	// Stability: stable
  1112  	// Examples: '2020-01-23T13:47:06Z'
  1113  	FaaSTimeKey = attribute.Key("faas.time")
  1114  
  1115  	// FaaSCronKey is the attribute Key conforming to the "faas.cron" semantic
  1116  	// conventions. It represents a string containing the schedule period as
  1117  	// [Cron
  1118  	// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
  1119  	//
  1120  	// Type: string
  1121  	// RequirementLevel: Optional
  1122  	// Stability: stable
  1123  	// Examples: '0/5 * * * ? *'
  1124  	FaaSCronKey = attribute.Key("faas.cron")
  1125  )
  1126  
  1127  // FaaSTime returns an attribute KeyValue conforming to the "faas.time"
  1128  // semantic conventions. It represents a string containing the function
  1129  // invocation time in the [ISO
  1130  // 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
  1131  // expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
  1132  func FaaSTime(val string) attribute.KeyValue {
  1133  	return FaaSTimeKey.String(val)
  1134  }
  1135  
  1136  // FaaSCron returns an attribute KeyValue conforming to the "faas.cron"
  1137  // semantic conventions. It represents a string containing the schedule period
  1138  // as [Cron
  1139  // Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
  1140  func FaaSCron(val string) attribute.KeyValue {
  1141  	return FaaSCronKey.String(val)
  1142  }
  1143  
  1144  // Contains additional attributes for incoming FaaS spans.
  1145  const (
  1146  	// FaaSColdstartKey is the attribute Key conforming to the "faas.coldstart"
  1147  	// semantic conventions. It represents a boolean that is true if the
  1148  	// serverless function is executed for the first time (aka cold-start).
  1149  	//
  1150  	// Type: boolean
  1151  	// RequirementLevel: Optional
  1152  	// Stability: stable
  1153  	FaaSColdstartKey = attribute.Key("faas.coldstart")
  1154  )
  1155  
  1156  // FaaSColdstart returns an attribute KeyValue conforming to the
  1157  // "faas.coldstart" semantic conventions. It represents a boolean that is true
  1158  // if the serverless function is executed for the first time (aka cold-start).
  1159  func FaaSColdstart(val bool) attribute.KeyValue {
  1160  	return FaaSColdstartKey.Bool(val)
  1161  }
  1162  
  1163  // Contains additional attributes for outgoing FaaS spans.
  1164  const (
  1165  	// FaaSInvokedNameKey is the attribute Key conforming to the
  1166  	// "faas.invoked_name" semantic conventions. It represents the name of the
  1167  	// invoked function.
  1168  	//
  1169  	// Type: string
  1170  	// RequirementLevel: Required
  1171  	// Stability: stable
  1172  	// Examples: 'my-function'
  1173  	// Note: SHOULD be equal to the `faas.name` resource attribute of the
  1174  	// invoked function.
  1175  	FaaSInvokedNameKey = attribute.Key("faas.invoked_name")
  1176  
  1177  	// FaaSInvokedProviderKey is the attribute Key conforming to the
  1178  	// "faas.invoked_provider" semantic conventions. It represents the cloud
  1179  	// provider of the invoked function.
  1180  	//
  1181  	// Type: Enum
  1182  	// RequirementLevel: Required
  1183  	// Stability: stable
  1184  	// Note: SHOULD be equal to the `cloud.provider` resource attribute of the
  1185  	// invoked function.
  1186  	FaaSInvokedProviderKey = attribute.Key("faas.invoked_provider")
  1187  
  1188  	// FaaSInvokedRegionKey is the attribute Key conforming to the
  1189  	// "faas.invoked_region" semantic conventions. It represents the cloud
  1190  	// region of the invoked function.
  1191  	//
  1192  	// Type: string
  1193  	// RequirementLevel: ConditionallyRequired (For some cloud providers, like
  1194  	// AWS or GCP, the region in which a function is hosted is essential to
  1195  	// uniquely identify the function and also part of its endpoint. Since it's
  1196  	// part of the endpoint being called, the region is always known to
  1197  	// clients. In these cases, `faas.invoked_region` MUST be set accordingly.
  1198  	// If the region is unknown to the client or not required for identifying
  1199  	// the invoked function, setting `faas.invoked_region` is optional.)
  1200  	// Stability: stable
  1201  	// Examples: 'eu-central-1'
  1202  	// Note: SHOULD be equal to the `cloud.region` resource attribute of the
  1203  	// invoked function.
  1204  	FaaSInvokedRegionKey = attribute.Key("faas.invoked_region")
  1205  )
  1206  
  1207  var (
  1208  	// Alibaba Cloud
  1209  	FaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String("alibaba_cloud")
  1210  	// Amazon Web Services
  1211  	FaaSInvokedProviderAWS = FaaSInvokedProviderKey.String("aws")
  1212  	// Microsoft Azure
  1213  	FaaSInvokedProviderAzure = FaaSInvokedProviderKey.String("azure")
  1214  	// Google Cloud Platform
  1215  	FaaSInvokedProviderGCP = FaaSInvokedProviderKey.String("gcp")
  1216  	// Tencent Cloud
  1217  	FaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String("tencent_cloud")
  1218  )
  1219  
  1220  // FaaSInvokedName returns an attribute KeyValue conforming to the
  1221  // "faas.invoked_name" semantic conventions. It represents the name of the
  1222  // invoked function.
  1223  func FaaSInvokedName(val string) attribute.KeyValue {
  1224  	return FaaSInvokedNameKey.String(val)
  1225  }
  1226  
  1227  // FaaSInvokedRegion returns an attribute KeyValue conforming to the
  1228  // "faas.invoked_region" semantic conventions. It represents the cloud region
  1229  // of the invoked function.
  1230  func FaaSInvokedRegion(val string) attribute.KeyValue {
  1231  	return FaaSInvokedRegionKey.String(val)
  1232  }
  1233  
  1234  // Operations that access some remote service.
  1235  const (
  1236  	// PeerServiceKey is the attribute Key conforming to the "peer.service"
  1237  	// semantic conventions. It represents the
  1238  	// [`service.name`](../../resource/semantic_conventions/README.md#service)
  1239  	// of the remote service. SHOULD be equal to the actual `service.name`
  1240  	// resource attribute of the remote service if any.
  1241  	//
  1242  	// Type: string
  1243  	// RequirementLevel: Optional
  1244  	// Stability: stable
  1245  	// Examples: 'AuthTokenCache'
  1246  	PeerServiceKey = attribute.Key("peer.service")
  1247  )
  1248  
  1249  // PeerService returns an attribute KeyValue conforming to the
  1250  // "peer.service" semantic conventions. It represents the
  1251  // [`service.name`](../../resource/semantic_conventions/README.md#service) of
  1252  // the remote service. SHOULD be equal to the actual `service.name` resource
  1253  // attribute of the remote service if any.
  1254  func PeerService(val string) attribute.KeyValue {
  1255  	return PeerServiceKey.String(val)
  1256  }
  1257  
  1258  // These attributes may be used for any operation with an authenticated and/or
  1259  // authorized enduser.
  1260  const (
  1261  	// EnduserIDKey is the attribute Key conforming to the "enduser.id"
  1262  	// semantic conventions. It represents the username or client_id extracted
  1263  	// from the access token or
  1264  	// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header
  1265  	// in the inbound request from outside the system.
  1266  	//
  1267  	// Type: string
  1268  	// RequirementLevel: Optional
  1269  	// Stability: stable
  1270  	// Examples: 'username'
  1271  	EnduserIDKey = attribute.Key("enduser.id")
  1272  
  1273  	// EnduserRoleKey is the attribute Key conforming to the "enduser.role"
  1274  	// semantic conventions. It represents the actual/assumed role the client
  1275  	// is making the request under extracted from token or application security
  1276  	// context.
  1277  	//
  1278  	// Type: string
  1279  	// RequirementLevel: Optional
  1280  	// Stability: stable
  1281  	// Examples: 'admin'
  1282  	EnduserRoleKey = attribute.Key("enduser.role")
  1283  
  1284  	// EnduserScopeKey is the attribute Key conforming to the "enduser.scope"
  1285  	// semantic conventions. It represents the scopes or granted authorities
  1286  	// the client currently possesses extracted from token or application
  1287  	// security context. The value would come from the scope associated with an
  1288  	// [OAuth 2.0 Access
  1289  	// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute
  1290  	// value in a [SAML 2.0
  1291  	// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).
  1292  	//
  1293  	// Type: string
  1294  	// RequirementLevel: Optional
  1295  	// Stability: stable
  1296  	// Examples: 'read:message, write:files'
  1297  	EnduserScopeKey = attribute.Key("enduser.scope")
  1298  )
  1299  
  1300  // EnduserID returns an attribute KeyValue conforming to the "enduser.id"
  1301  // semantic conventions. It represents the username or client_id extracted from
  1302  // the access token or
  1303  // [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in
  1304  // the inbound request from outside the system.
  1305  func EnduserID(val string) attribute.KeyValue {
  1306  	return EnduserIDKey.String(val)
  1307  }
  1308  
  1309  // EnduserRole returns an attribute KeyValue conforming to the
  1310  // "enduser.role" semantic conventions. It represents the actual/assumed role
  1311  // the client is making the request under extracted from token or application
  1312  // security context.
  1313  func EnduserRole(val string) attribute.KeyValue {
  1314  	return EnduserRoleKey.String(val)
  1315  }
  1316  
  1317  // EnduserScope returns an attribute KeyValue conforming to the
  1318  // "enduser.scope" semantic conventions. It represents the scopes or granted
  1319  // authorities the client currently possesses extracted from token or
  1320  // application security context. The value would come from the scope associated
  1321  // with an [OAuth 2.0 Access
  1322  // Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute
  1323  // value in a [SAML 2.0
  1324  // Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).
  1325  func EnduserScope(val string) attribute.KeyValue {
  1326  	return EnduserScopeKey.String(val)
  1327  }
  1328  
  1329  // These attributes may be used for any operation to store information about a
  1330  // thread that started a span.
  1331  const (
  1332  	// ThreadIDKey is the attribute Key conforming to the "thread.id" semantic
  1333  	// conventions. It represents the current "managed" thread ID (as opposed
  1334  	// to OS thread ID).
  1335  	//
  1336  	// Type: int
  1337  	// RequirementLevel: Optional
  1338  	// Stability: stable
  1339  	// Examples: 42
  1340  	ThreadIDKey = attribute.Key("thread.id")
  1341  
  1342  	// ThreadNameKey is the attribute Key conforming to the "thread.name"
  1343  	// semantic conventions. It represents the current thread name.
  1344  	//
  1345  	// Type: string
  1346  	// RequirementLevel: Optional
  1347  	// Stability: stable
  1348  	// Examples: 'main'
  1349  	ThreadNameKey = attribute.Key("thread.name")
  1350  )
  1351  
  1352  // ThreadID returns an attribute KeyValue conforming to the "thread.id"
  1353  // semantic conventions. It represents the current "managed" thread ID (as
  1354  // opposed to OS thread ID).
  1355  func ThreadID(val int) attribute.KeyValue {
  1356  	return ThreadIDKey.Int(val)
  1357  }
  1358  
  1359  // ThreadName returns an attribute KeyValue conforming to the "thread.name"
  1360  // semantic conventions. It represents the current thread name.
  1361  func ThreadName(val string) attribute.KeyValue {
  1362  	return ThreadNameKey.String(val)
  1363  }
  1364  
  1365  // These attributes allow to report this unit of code and therefore to provide
  1366  // more context about the span.
  1367  const (
  1368  	// CodeFunctionKey is the attribute Key conforming to the "code.function"
  1369  	// semantic conventions. It represents the method or function name, or
  1370  	// equivalent (usually rightmost part of the code unit's name).
  1371  	//
  1372  	// Type: string
  1373  	// RequirementLevel: Optional
  1374  	// Stability: stable
  1375  	// Examples: 'serveRequest'
  1376  	CodeFunctionKey = attribute.Key("code.function")
  1377  
  1378  	// CodeNamespaceKey is the attribute Key conforming to the "code.namespace"
  1379  	// semantic conventions. It represents the "namespace" within which
  1380  	// `code.function` is defined. Usually the qualified class or module name,
  1381  	// such that `code.namespace` + some separator + `code.function` form a
  1382  	// unique identifier for the code unit.
  1383  	//
  1384  	// Type: string
  1385  	// RequirementLevel: Optional
  1386  	// Stability: stable
  1387  	// Examples: 'com.example.MyHTTPService'
  1388  	CodeNamespaceKey = attribute.Key("code.namespace")
  1389  
  1390  	// CodeFilepathKey is the attribute Key conforming to the "code.filepath"
  1391  	// semantic conventions. It represents the source code file name that
  1392  	// identifies the code unit as uniquely as possible (preferably an absolute
  1393  	// file path).
  1394  	//
  1395  	// Type: string
  1396  	// RequirementLevel: Optional
  1397  	// Stability: stable
  1398  	// Examples: '/usr/local/MyApplication/content_root/app/index.php'
  1399  	CodeFilepathKey = attribute.Key("code.filepath")
  1400  
  1401  	// CodeLineNumberKey is the attribute Key conforming to the "code.lineno"
  1402  	// semantic conventions. It represents the line number in `code.filepath`
  1403  	// best representing the operation. It SHOULD point within the code unit
  1404  	// named in `code.function`.
  1405  	//
  1406  	// Type: int
  1407  	// RequirementLevel: Optional
  1408  	// Stability: stable
  1409  	// Examples: 42
  1410  	CodeLineNumberKey = attribute.Key("code.lineno")
  1411  
  1412  	// CodeColumnKey is the attribute Key conforming to the "code.column"
  1413  	// semantic conventions. It represents the column number in `code.filepath`
  1414  	// best representing the operation. It SHOULD point within the code unit
  1415  	// named in `code.function`.
  1416  	//
  1417  	// Type: int
  1418  	// RequirementLevel: Optional
  1419  	// Stability: stable
  1420  	// Examples: 16
  1421  	CodeColumnKey = attribute.Key("code.column")
  1422  )
  1423  
  1424  // CodeFunction returns an attribute KeyValue conforming to the
  1425  // "code.function" semantic conventions. It represents the method or function
  1426  // name, or equivalent (usually rightmost part of the code unit's name).
  1427  func CodeFunction(val string) attribute.KeyValue {
  1428  	return CodeFunctionKey.String(val)
  1429  }
  1430  
  1431  // CodeNamespace returns an attribute KeyValue conforming to the
  1432  // "code.namespace" semantic conventions. It represents the "namespace" within
  1433  // which `code.function` is defined. Usually the qualified class or module
  1434  // name, such that `code.namespace` + some separator + `code.function` form a
  1435  // unique identifier for the code unit.
  1436  func CodeNamespace(val string) attribute.KeyValue {
  1437  	return CodeNamespaceKey.String(val)
  1438  }
  1439  
  1440  // CodeFilepath returns an attribute KeyValue conforming to the
  1441  // "code.filepath" semantic conventions. It represents the source code file
  1442  // name that identifies the code unit as uniquely as possible (preferably an
  1443  // absolute file path).
  1444  func CodeFilepath(val string) attribute.KeyValue {
  1445  	return CodeFilepathKey.String(val)
  1446  }
  1447  
  1448  // CodeLineNumber returns an attribute KeyValue conforming to the "code.lineno"
  1449  // semantic conventions. It represents the line number in `code.filepath` best
  1450  // representing the operation. It SHOULD point within the code unit named in
  1451  // `code.function`.
  1452  func CodeLineNumber(val int) attribute.KeyValue {
  1453  	return CodeLineNumberKey.Int(val)
  1454  }
  1455  
  1456  // CodeColumn returns an attribute KeyValue conforming to the "code.column"
  1457  // semantic conventions. It represents the column number in `code.filepath`
  1458  // best representing the operation. It SHOULD point within the code unit named
  1459  // in `code.function`.
  1460  func CodeColumn(val int) attribute.KeyValue {
  1461  	return CodeColumnKey.Int(val)
  1462  }
  1463  
  1464  // Semantic Convention for HTTP Client
  1465  const (
  1466  	// HTTPURLKey is the attribute Key conforming to the "http.url" semantic
  1467  	// conventions. It represents the full HTTP request URL in the form
  1468  	// `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is
  1469  	// not transmitted over HTTP, but if it is known, it should be included
  1470  	// nevertheless.
  1471  	//
  1472  	// Type: string
  1473  	// RequirementLevel: Required
  1474  	// Stability: stable
  1475  	// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv'
  1476  	// Note: `http.url` MUST NOT contain credentials passed via URL in form of
  1477  	// `https://username:password@www.example.com/`. In such case the
  1478  	// attribute's value should be `https://www.example.com/`.
  1479  	HTTPURLKey = attribute.Key("http.url")
  1480  
  1481  	// HTTPResendCountKey is the attribute Key conforming to the
  1482  	// "http.resend_count" semantic conventions. It represents the ordinal
  1483  	// number of request resending attempt (for any reason, including
  1484  	// redirects).
  1485  	//
  1486  	// Type: int
  1487  	// RequirementLevel: Recommended (if and only if request was retried.)
  1488  	// Stability: stable
  1489  	// Examples: 3
  1490  	// Note: The resend count SHOULD be updated each time an HTTP request gets
  1491  	// resent by the client, regardless of what was the cause of the resending
  1492  	// (e.g. redirection, authorization failure, 503 Server Unavailable,
  1493  	// network issues, or any other).
  1494  	HTTPResendCountKey = attribute.Key("http.resend_count")
  1495  )
  1496  
  1497  // HTTPURL returns an attribute KeyValue conforming to the "http.url"
  1498  // semantic conventions. It represents the full HTTP request URL in the form
  1499  // `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not
  1500  // transmitted over HTTP, but if it is known, it should be included
  1501  // nevertheless.
  1502  func HTTPURL(val string) attribute.KeyValue {
  1503  	return HTTPURLKey.String(val)
  1504  }
  1505  
  1506  // HTTPResendCount returns an attribute KeyValue conforming to the
  1507  // "http.resend_count" semantic conventions. It represents the ordinal number
  1508  // of request resending attempt (for any reason, including redirects).
  1509  func HTTPResendCount(val int) attribute.KeyValue {
  1510  	return HTTPResendCountKey.Int(val)
  1511  }
  1512  
  1513  // Semantic Convention for HTTP Server
  1514  const (
  1515  	// HTTPTargetKey is the attribute Key conforming to the "http.target"
  1516  	// semantic conventions. It represents the full request target as passed in
  1517  	// a HTTP request line or equivalent.
  1518  	//
  1519  	// Type: string
  1520  	// RequirementLevel: Required
  1521  	// Stability: stable
  1522  	// Examples: '/users/12314/?q=ddds'
  1523  	HTTPTargetKey = attribute.Key("http.target")
  1524  
  1525  	// HTTPClientIPKey is the attribute Key conforming to the "http.client_ip"
  1526  	// semantic conventions. It represents the IP address of the original
  1527  	// client behind all proxies, if known (e.g. from
  1528  	// [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).
  1529  	//
  1530  	// Type: string
  1531  	// RequirementLevel: Optional
  1532  	// Stability: stable
  1533  	// Examples: '83.164.160.102'
  1534  	// Note: This is not necessarily the same as `net.sock.peer.addr`, which
  1535  	// would
  1536  	// identify the network-level peer, which may be a proxy.
  1537  	//
  1538  	// This attribute should be set when a source of information different
  1539  	// from the one used for `net.sock.peer.addr`, is available even if that
  1540  	// other
  1541  	// source just confirms the same value as `net.sock.peer.addr`.
  1542  	// Rationale: For `net.sock.peer.addr`, one typically does not know if it
  1543  	// comes from a proxy, reverse proxy, or the actual client. Setting
  1544  	// `http.client_ip` when it's the same as `net.sock.peer.addr` means that
  1545  	// one is at least somewhat confident that the address is not that of
  1546  	// the closest proxy.
  1547  	HTTPClientIPKey = attribute.Key("http.client_ip")
  1548  )
  1549  
  1550  // HTTPTarget returns an attribute KeyValue conforming to the "http.target"
  1551  // semantic conventions. It represents the full request target as passed in a
  1552  // HTTP request line or equivalent.
  1553  func HTTPTarget(val string) attribute.KeyValue {
  1554  	return HTTPTargetKey.String(val)
  1555  }
  1556  
  1557  // HTTPClientIP returns an attribute KeyValue conforming to the
  1558  // "http.client_ip" semantic conventions. It represents the IP address of the
  1559  // original client behind all proxies, if known (e.g. from
  1560  // [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).
  1561  func HTTPClientIP(val string) attribute.KeyValue {
  1562  	return HTTPClientIPKey.String(val)
  1563  }
  1564  
  1565  // The `aws` conventions apply to operations using the AWS SDK. They map
  1566  // request or response parameters in AWS SDK API calls to attributes on a Span.
  1567  // The conventions have been collected over time based on feedback from AWS
  1568  // users of tracing and will continue to evolve as new interesting conventions
  1569  // are found.
  1570  // Some descriptions are also provided for populating general OpenTelemetry
  1571  // semantic conventions based on these APIs.
  1572  const (
  1573  	// AWSRequestIDKey is the attribute Key conforming to the "aws.request_id"
  1574  	// semantic conventions. It represents the AWS request ID as returned in
  1575  	// the response headers `x-amz-request-id` or `x-amz-requestid`.
  1576  	//
  1577  	// Type: string
  1578  	// RequirementLevel: Optional
  1579  	// Stability: stable
  1580  	// Examples: '79b9da39-b7ae-508a-a6bc-864b2829c622', 'C9ER4AJX75574TDJ'
  1581  	AWSRequestIDKey = attribute.Key("aws.request_id")
  1582  )
  1583  
  1584  // AWSRequestID returns an attribute KeyValue conforming to the
  1585  // "aws.request_id" semantic conventions. It represents the AWS request ID as
  1586  // returned in the response headers `x-amz-request-id` or `x-amz-requestid`.
  1587  func AWSRequestID(val string) attribute.KeyValue {
  1588  	return AWSRequestIDKey.String(val)
  1589  }
  1590  
  1591  // Attributes that exist for multiple DynamoDB request types.
  1592  const (
  1593  	// AWSDynamoDBTableNamesKey is the attribute Key conforming to the
  1594  	// "aws.dynamodb.table_names" semantic conventions. It represents the keys
  1595  	// in the `RequestItems` object field.
  1596  	//
  1597  	// Type: string[]
  1598  	// RequirementLevel: Optional
  1599  	// Stability: stable
  1600  	// Examples: 'Users', 'Cats'
  1601  	AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names")
  1602  
  1603  	// AWSDynamoDBConsumedCapacityKey is the attribute Key conforming to the
  1604  	// "aws.dynamodb.consumed_capacity" semantic conventions. It represents the
  1605  	// JSON-serialized value of each item in the `ConsumedCapacity` response
  1606  	// field.
  1607  	//
  1608  	// Type: string[]
  1609  	// RequirementLevel: Optional
  1610  	// Stability: stable
  1611  	// Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": {
  1612  	// "string" : { "CapacityUnits": number, "ReadCapacityUnits": number,
  1613  	// "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" :
  1614  	// { "CapacityUnits": number, "ReadCapacityUnits": number,
  1615  	// "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table":
  1616  	// { "CapacityUnits": number, "ReadCapacityUnits": number,
  1617  	// "WriteCapacityUnits": number }, "TableName": "string",
  1618  	// "WriteCapacityUnits": number }'
  1619  	AWSDynamoDBConsumedCapacityKey = attribute.Key("aws.dynamodb.consumed_capacity")
  1620  
  1621  	// AWSDynamoDBItemCollectionMetricsKey is the attribute Key conforming to
  1622  	// the "aws.dynamodb.item_collection_metrics" semantic conventions. It
  1623  	// represents the JSON-serialized value of the `ItemCollectionMetrics`
  1624  	// response field.
  1625  	//
  1626  	// Type: string
  1627  	// RequirementLevel: Optional
  1628  	// Stability: stable
  1629  	// Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B":
  1630  	// blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": {
  1631  	// "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ],
  1632  	// "NULL": boolean, "S": "string", "SS": [ "string" ] } },
  1633  	// "SizeEstimateRangeGB": [ number ] } ] }'
  1634  	AWSDynamoDBItemCollectionMetricsKey = attribute.Key("aws.dynamodb.item_collection_metrics")
  1635  
  1636  	// AWSDynamoDBProvisionedReadCapacityKey is the attribute Key conforming to
  1637  	// the "aws.dynamodb.provisioned_read_capacity" semantic conventions. It
  1638  	// represents the value of the `ProvisionedThroughput.ReadCapacityUnits`
  1639  	// request parameter.
  1640  	//
  1641  	// Type: double
  1642  	// RequirementLevel: Optional
  1643  	// Stability: stable
  1644  	// Examples: 1.0, 2.0
  1645  	AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity")
  1646  
  1647  	// AWSDynamoDBProvisionedWriteCapacityKey is the attribute Key conforming
  1648  	// to the "aws.dynamodb.provisioned_write_capacity" semantic conventions.
  1649  	// It represents the value of the
  1650  	// `ProvisionedThroughput.WriteCapacityUnits` request parameter.
  1651  	//
  1652  	// Type: double
  1653  	// RequirementLevel: Optional
  1654  	// Stability: stable
  1655  	// Examples: 1.0, 2.0
  1656  	AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity")
  1657  
  1658  	// AWSDynamoDBConsistentReadKey is the attribute Key conforming to the
  1659  	// "aws.dynamodb.consistent_read" semantic conventions. It represents the
  1660  	// value of the `ConsistentRead` request parameter.
  1661  	//
  1662  	// Type: boolean
  1663  	// RequirementLevel: Optional
  1664  	// Stability: stable
  1665  	AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read")
  1666  
  1667  	// AWSDynamoDBProjectionKey is the attribute Key conforming to the
  1668  	// "aws.dynamodb.projection" semantic conventions. It represents the value
  1669  	// of the `ProjectionExpression` request parameter.
  1670  	//
  1671  	// Type: string
  1672  	// RequirementLevel: Optional
  1673  	// Stability: stable
  1674  	// Examples: 'Title', 'Title, Price, Color', 'Title, Description,
  1675  	// RelatedItems, ProductReviews'
  1676  	AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection")
  1677  
  1678  	// AWSDynamoDBLimitKey is the attribute Key conforming to the
  1679  	// "aws.dynamodb.limit" semantic conventions. It represents the value of
  1680  	// the `Limit` request parameter.
  1681  	//
  1682  	// Type: int
  1683  	// RequirementLevel: Optional
  1684  	// Stability: stable
  1685  	// Examples: 10
  1686  	AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit")
  1687  
  1688  	// AWSDynamoDBAttributesToGetKey is the attribute Key conforming to the
  1689  	// "aws.dynamodb.attributes_to_get" semantic conventions. It represents the
  1690  	// value of the `AttributesToGet` request parameter.
  1691  	//
  1692  	// Type: string[]
  1693  	// RequirementLevel: Optional
  1694  	// Stability: stable
  1695  	// Examples: 'lives', 'id'
  1696  	AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get")
  1697  
  1698  	// AWSDynamoDBIndexNameKey is the attribute Key conforming to the
  1699  	// "aws.dynamodb.index_name" semantic conventions. It represents the value
  1700  	// of the `IndexName` request parameter.
  1701  	//
  1702  	// Type: string
  1703  	// RequirementLevel: Optional
  1704  	// Stability: stable
  1705  	// Examples: 'name_to_group'
  1706  	AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name")
  1707  
  1708  	// AWSDynamoDBSelectKey is the attribute Key conforming to the
  1709  	// "aws.dynamodb.select" semantic conventions. It represents the value of
  1710  	// the `Select` request parameter.
  1711  	//
  1712  	// Type: string
  1713  	// RequirementLevel: Optional
  1714  	// Stability: stable
  1715  	// Examples: 'ALL_ATTRIBUTES', 'COUNT'
  1716  	AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select")
  1717  )
  1718  
  1719  // AWSDynamoDBTableNames returns an attribute KeyValue conforming to the
  1720  // "aws.dynamodb.table_names" semantic conventions. It represents the keys in
  1721  // the `RequestItems` object field.
  1722  func AWSDynamoDBTableNames(val ...string) attribute.KeyValue {
  1723  	return AWSDynamoDBTableNamesKey.StringSlice(val)
  1724  }
  1725  
  1726  // AWSDynamoDBConsumedCapacity returns an attribute KeyValue conforming to
  1727  // the "aws.dynamodb.consumed_capacity" semantic conventions. It represents the
  1728  // JSON-serialized value of each item in the `ConsumedCapacity` response field.
  1729  func AWSDynamoDBConsumedCapacity(val ...string) attribute.KeyValue {
  1730  	return AWSDynamoDBConsumedCapacityKey.StringSlice(val)
  1731  }
  1732  
  1733  // AWSDynamoDBItemCollectionMetrics returns an attribute KeyValue conforming
  1734  // to the "aws.dynamodb.item_collection_metrics" semantic conventions. It
  1735  // represents the JSON-serialized value of the `ItemCollectionMetrics` response
  1736  // field.
  1737  func AWSDynamoDBItemCollectionMetrics(val string) attribute.KeyValue {
  1738  	return AWSDynamoDBItemCollectionMetricsKey.String(val)
  1739  }
  1740  
  1741  // AWSDynamoDBProvisionedReadCapacity returns an attribute KeyValue
  1742  // conforming to the "aws.dynamodb.provisioned_read_capacity" semantic
  1743  // conventions. It represents the value of the
  1744  // `ProvisionedThroughput.ReadCapacityUnits` request parameter.
  1745  func AWSDynamoDBProvisionedReadCapacity(val float64) attribute.KeyValue {
  1746  	return AWSDynamoDBProvisionedReadCapacityKey.Float64(val)
  1747  }
  1748  
  1749  // AWSDynamoDBProvisionedWriteCapacity returns an attribute KeyValue
  1750  // conforming to the "aws.dynamodb.provisioned_write_capacity" semantic
  1751  // conventions. It represents the value of the
  1752  // `ProvisionedThroughput.WriteCapacityUnits` request parameter.
  1753  func AWSDynamoDBProvisionedWriteCapacity(val float64) attribute.KeyValue {
  1754  	return AWSDynamoDBProvisionedWriteCapacityKey.Float64(val)
  1755  }
  1756  
  1757  // AWSDynamoDBConsistentRead returns an attribute KeyValue conforming to the
  1758  // "aws.dynamodb.consistent_read" semantic conventions. It represents the value
  1759  // of the `ConsistentRead` request parameter.
  1760  func AWSDynamoDBConsistentRead(val bool) attribute.KeyValue {
  1761  	return AWSDynamoDBConsistentReadKey.Bool(val)
  1762  }
  1763  
  1764  // AWSDynamoDBProjection returns an attribute KeyValue conforming to the
  1765  // "aws.dynamodb.projection" semantic conventions. It represents the value of
  1766  // the `ProjectionExpression` request parameter.
  1767  func AWSDynamoDBProjection(val string) attribute.KeyValue {
  1768  	return AWSDynamoDBProjectionKey.String(val)
  1769  }
  1770  
  1771  // AWSDynamoDBLimit returns an attribute KeyValue conforming to the
  1772  // "aws.dynamodb.limit" semantic conventions. It represents the value of the
  1773  // `Limit` request parameter.
  1774  func AWSDynamoDBLimit(val int) attribute.KeyValue {
  1775  	return AWSDynamoDBLimitKey.Int(val)
  1776  }
  1777  
  1778  // AWSDynamoDBAttributesToGet returns an attribute KeyValue conforming to
  1779  // the "aws.dynamodb.attributes_to_get" semantic conventions. It represents the
  1780  // value of the `AttributesToGet` request parameter.
  1781  func AWSDynamoDBAttributesToGet(val ...string) attribute.KeyValue {
  1782  	return AWSDynamoDBAttributesToGetKey.StringSlice(val)
  1783  }
  1784  
  1785  // AWSDynamoDBIndexName returns an attribute KeyValue conforming to the
  1786  // "aws.dynamodb.index_name" semantic conventions. It represents the value of
  1787  // the `IndexName` request parameter.
  1788  func AWSDynamoDBIndexName(val string) attribute.KeyValue {
  1789  	return AWSDynamoDBIndexNameKey.String(val)
  1790  }
  1791  
  1792  // AWSDynamoDBSelect returns an attribute KeyValue conforming to the
  1793  // "aws.dynamodb.select" semantic conventions. It represents the value of the
  1794  // `Select` request parameter.
  1795  func AWSDynamoDBSelect(val string) attribute.KeyValue {
  1796  	return AWSDynamoDBSelectKey.String(val)
  1797  }
  1798  
  1799  // DynamoDB.CreateTable
  1800  const (
  1801  	// AWSDynamoDBGlobalSecondaryIndexesKey is the attribute Key conforming to
  1802  	// the "aws.dynamodb.global_secondary_indexes" semantic conventions. It
  1803  	// represents the JSON-serialized value of each item of the
  1804  	// `GlobalSecondaryIndexes` request field
  1805  	//
  1806  	// Type: string[]
  1807  	// RequirementLevel: Optional
  1808  	// Stability: stable
  1809  	// Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName":
  1810  	// "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [
  1811  	// "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": {
  1812  	// "ReadCapacityUnits": number, "WriteCapacityUnits": number } }'
  1813  	AWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key("aws.dynamodb.global_secondary_indexes")
  1814  
  1815  	// AWSDynamoDBLocalSecondaryIndexesKey is the attribute Key conforming to
  1816  	// the "aws.dynamodb.local_secondary_indexes" semantic conventions. It
  1817  	// represents the JSON-serialized value of each item of the
  1818  	// `LocalSecondaryIndexes` request field.
  1819  	//
  1820  	// Type: string[]
  1821  	// RequirementLevel: Optional
  1822  	// Stability: stable
  1823  	// Examples: '{ "IndexARN": "string", "IndexName": "string",
  1824  	// "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ {
  1825  	// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
  1826  	// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }'
  1827  	AWSDynamoDBLocalSecondaryIndexesKey = attribute.Key("aws.dynamodb.local_secondary_indexes")
  1828  )
  1829  
  1830  // AWSDynamoDBGlobalSecondaryIndexes returns an attribute KeyValue
  1831  // conforming to the "aws.dynamodb.global_secondary_indexes" semantic
  1832  // conventions. It represents the JSON-serialized value of each item of the
  1833  // `GlobalSecondaryIndexes` request field
  1834  func AWSDynamoDBGlobalSecondaryIndexes(val ...string) attribute.KeyValue {
  1835  	return AWSDynamoDBGlobalSecondaryIndexesKey.StringSlice(val)
  1836  }
  1837  
  1838  // AWSDynamoDBLocalSecondaryIndexes returns an attribute KeyValue conforming
  1839  // to the "aws.dynamodb.local_secondary_indexes" semantic conventions. It
  1840  // represents the JSON-serialized value of each item of the
  1841  // `LocalSecondaryIndexes` request field.
  1842  func AWSDynamoDBLocalSecondaryIndexes(val ...string) attribute.KeyValue {
  1843  	return AWSDynamoDBLocalSecondaryIndexesKey.StringSlice(val)
  1844  }
  1845  
  1846  // DynamoDB.ListTables
  1847  const (
  1848  	// AWSDynamoDBExclusiveStartTableKey is the attribute Key conforming to the
  1849  	// "aws.dynamodb.exclusive_start_table" semantic conventions. It represents
  1850  	// the value of the `ExclusiveStartTableName` request parameter.
  1851  	//
  1852  	// Type: string
  1853  	// RequirementLevel: Optional
  1854  	// Stability: stable
  1855  	// Examples: 'Users', 'CatsTable'
  1856  	AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table")
  1857  
  1858  	// AWSDynamoDBTableCountKey is the attribute Key conforming to the
  1859  	// "aws.dynamodb.table_count" semantic conventions. It represents the the
  1860  	// number of items in the `TableNames` response parameter.
  1861  	//
  1862  	// Type: int
  1863  	// RequirementLevel: Optional
  1864  	// Stability: stable
  1865  	// Examples: 20
  1866  	AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count")
  1867  )
  1868  
  1869  // AWSDynamoDBExclusiveStartTable returns an attribute KeyValue conforming
  1870  // to the "aws.dynamodb.exclusive_start_table" semantic conventions. It
  1871  // represents the value of the `ExclusiveStartTableName` request parameter.
  1872  func AWSDynamoDBExclusiveStartTable(val string) attribute.KeyValue {
  1873  	return AWSDynamoDBExclusiveStartTableKey.String(val)
  1874  }
  1875  
  1876  // AWSDynamoDBTableCount returns an attribute KeyValue conforming to the
  1877  // "aws.dynamodb.table_count" semantic conventions. It represents the the
  1878  // number of items in the `TableNames` response parameter.
  1879  func AWSDynamoDBTableCount(val int) attribute.KeyValue {
  1880  	return AWSDynamoDBTableCountKey.Int(val)
  1881  }
  1882  
  1883  // DynamoDB.Query
  1884  const (
  1885  	// AWSDynamoDBScanForwardKey is the attribute Key conforming to the
  1886  	// "aws.dynamodb.scan_forward" semantic conventions. It represents the
  1887  	// value of the `ScanIndexForward` request parameter.
  1888  	//
  1889  	// Type: boolean
  1890  	// RequirementLevel: Optional
  1891  	// Stability: stable
  1892  	AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward")
  1893  )
  1894  
  1895  // AWSDynamoDBScanForward returns an attribute KeyValue conforming to the
  1896  // "aws.dynamodb.scan_forward" semantic conventions. It represents the value of
  1897  // the `ScanIndexForward` request parameter.
  1898  func AWSDynamoDBScanForward(val bool) attribute.KeyValue {
  1899  	return AWSDynamoDBScanForwardKey.Bool(val)
  1900  }
  1901  
  1902  // DynamoDB.Scan
  1903  const (
  1904  	// AWSDynamoDBSegmentKey is the attribute Key conforming to the
  1905  	// "aws.dynamodb.segment" semantic conventions. It represents the value of
  1906  	// the `Segment` request parameter.
  1907  	//
  1908  	// Type: int
  1909  	// RequirementLevel: Optional
  1910  	// Stability: stable
  1911  	// Examples: 10
  1912  	AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment")
  1913  
  1914  	// AWSDynamoDBTotalSegmentsKey is the attribute Key conforming to the
  1915  	// "aws.dynamodb.total_segments" semantic conventions. It represents the
  1916  	// value of the `TotalSegments` request parameter.
  1917  	//
  1918  	// Type: int
  1919  	// RequirementLevel: Optional
  1920  	// Stability: stable
  1921  	// Examples: 100
  1922  	AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments")
  1923  
  1924  	// AWSDynamoDBCountKey is the attribute Key conforming to the
  1925  	// "aws.dynamodb.count" semantic conventions. It represents the value of
  1926  	// the `Count` response parameter.
  1927  	//
  1928  	// Type: int
  1929  	// RequirementLevel: Optional
  1930  	// Stability: stable
  1931  	// Examples: 10
  1932  	AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count")
  1933  
  1934  	// AWSDynamoDBScannedCountKey is the attribute Key conforming to the
  1935  	// "aws.dynamodb.scanned_count" semantic conventions. It represents the
  1936  	// value of the `ScannedCount` response parameter.
  1937  	//
  1938  	// Type: int
  1939  	// RequirementLevel: Optional
  1940  	// Stability: stable
  1941  	// Examples: 50
  1942  	AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count")
  1943  )
  1944  
  1945  // AWSDynamoDBSegment returns an attribute KeyValue conforming to the
  1946  // "aws.dynamodb.segment" semantic conventions. It represents the value of the
  1947  // `Segment` request parameter.
  1948  func AWSDynamoDBSegment(val int) attribute.KeyValue {
  1949  	return AWSDynamoDBSegmentKey.Int(val)
  1950  }
  1951  
  1952  // AWSDynamoDBTotalSegments returns an attribute KeyValue conforming to the
  1953  // "aws.dynamodb.total_segments" semantic conventions. It represents the value
  1954  // of the `TotalSegments` request parameter.
  1955  func AWSDynamoDBTotalSegments(val int) attribute.KeyValue {
  1956  	return AWSDynamoDBTotalSegmentsKey.Int(val)
  1957  }
  1958  
  1959  // AWSDynamoDBCount returns an attribute KeyValue conforming to the
  1960  // "aws.dynamodb.count" semantic conventions. It represents the value of the
  1961  // `Count` response parameter.
  1962  func AWSDynamoDBCount(val int) attribute.KeyValue {
  1963  	return AWSDynamoDBCountKey.Int(val)
  1964  }
  1965  
  1966  // AWSDynamoDBScannedCount returns an attribute KeyValue conforming to the
  1967  // "aws.dynamodb.scanned_count" semantic conventions. It represents the value
  1968  // of the `ScannedCount` response parameter.
  1969  func AWSDynamoDBScannedCount(val int) attribute.KeyValue {
  1970  	return AWSDynamoDBScannedCountKey.Int(val)
  1971  }
  1972  
  1973  // DynamoDB.UpdateTable
  1974  const (
  1975  	// AWSDynamoDBAttributeDefinitionsKey is the attribute Key conforming to
  1976  	// the "aws.dynamodb.attribute_definitions" semantic conventions. It
  1977  	// represents the JSON-serialized value of each item in the
  1978  	// `AttributeDefinitions` request field.
  1979  	//
  1980  	// Type: string[]
  1981  	// RequirementLevel: Optional
  1982  	// Stability: stable
  1983  	// Examples: '{ "AttributeName": "string", "AttributeType": "string" }'
  1984  	AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions")
  1985  
  1986  	// AWSDynamoDBGlobalSecondaryIndexUpdatesKey is the attribute Key
  1987  	// conforming to the "aws.dynamodb.global_secondary_index_updates" semantic
  1988  	// conventions. It represents the JSON-serialized value of each item in the
  1989  	// the `GlobalSecondaryIndexUpdates` request field.
  1990  	//
  1991  	// Type: string[]
  1992  	// RequirementLevel: Optional
  1993  	// Stability: stable
  1994  	// Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ {
  1995  	// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
  1996  	// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" },
  1997  	// "ProvisionedThroughput": { "ReadCapacityUnits": number,
  1998  	// "WriteCapacityUnits": number } }'
  1999  	AWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key("aws.dynamodb.global_secondary_index_updates")
  2000  )
  2001  
  2002  // AWSDynamoDBAttributeDefinitions returns an attribute KeyValue conforming
  2003  // to the "aws.dynamodb.attribute_definitions" semantic conventions. It
  2004  // represents the JSON-serialized value of each item in the
  2005  // `AttributeDefinitions` request field.
  2006  func AWSDynamoDBAttributeDefinitions(val ...string) attribute.KeyValue {
  2007  	return AWSDynamoDBAttributeDefinitionsKey.StringSlice(val)
  2008  }
  2009  
  2010  // AWSDynamoDBGlobalSecondaryIndexUpdates returns an attribute KeyValue
  2011  // conforming to the "aws.dynamodb.global_secondary_index_updates" semantic
  2012  // conventions. It represents the JSON-serialized value of each item in the the
  2013  // `GlobalSecondaryIndexUpdates` request field.
  2014  func AWSDynamoDBGlobalSecondaryIndexUpdates(val ...string) attribute.KeyValue {
  2015  	return AWSDynamoDBGlobalSecondaryIndexUpdatesKey.StringSlice(val)
  2016  }
  2017  
  2018  // Attributes that exist for S3 request types.
  2019  const (
  2020  	// AWSS3BucketKey is the attribute Key conforming to the "aws.s3.bucket"
  2021  	// semantic conventions. It represents the S3 bucket name the request
  2022  	// refers to. Corresponds to the `--bucket` parameter of the [S3
  2023  	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
  2024  	// operations.
  2025  	//
  2026  	// Type: string
  2027  	// RequirementLevel: Optional
  2028  	// Stability: stable
  2029  	// Examples: 'some-bucket-name'
  2030  	// Note: The `bucket` attribute is applicable to all S3 operations that
  2031  	// reference a bucket, i.e. that require the bucket name as a mandatory
  2032  	// parameter.
  2033  	// This applies to almost all S3 operations except `list-buckets`.
  2034  	AWSS3BucketKey = attribute.Key("aws.s3.bucket")
  2035  
  2036  	// AWSS3KeyKey is the attribute Key conforming to the "aws.s3.key" semantic
  2037  	// conventions. It represents the S3 object key the request refers to.
  2038  	// Corresponds to the `--key` parameter of the [S3
  2039  	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
  2040  	// operations.
  2041  	//
  2042  	// Type: string
  2043  	// RequirementLevel: Optional
  2044  	// Stability: stable
  2045  	// Examples: 'someFile.yml'
  2046  	// Note: The `key` attribute is applicable to all object-related S3
  2047  	// operations, i.e. that require the object key as a mandatory parameter.
  2048  	// This applies in particular to the following operations:
  2049  	//
  2050  	// -
  2051  	// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
  2052  	// -
  2053  	// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
  2054  	// -
  2055  	// [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)
  2056  	// -
  2057  	// [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)
  2058  	// -
  2059  	// [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)
  2060  	// -
  2061  	// [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)
  2062  	// -
  2063  	// [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)
  2064  	// -
  2065  	// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
  2066  	// -
  2067  	// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
  2068  	// -
  2069  	// [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)
  2070  	// -
  2071  	// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
  2072  	// -
  2073  	// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
  2074  	// -
  2075  	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
  2076  	AWSS3KeyKey = attribute.Key("aws.s3.key")
  2077  
  2078  	// AWSS3CopySourceKey is the attribute Key conforming to the
  2079  	// "aws.s3.copy_source" semantic conventions. It represents the source
  2080  	// object (in the form `bucket`/`key`) for the copy operation.
  2081  	//
  2082  	// Type: string
  2083  	// RequirementLevel: Optional
  2084  	// Stability: stable
  2085  	// Examples: 'someFile.yml'
  2086  	// Note: The `copy_source` attribute applies to S3 copy operations and
  2087  	// corresponds to the `--copy-source` parameter
  2088  	// of the [copy-object operation within the S3
  2089  	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).
  2090  	// This applies in particular to the following operations:
  2091  	//
  2092  	// -
  2093  	// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
  2094  	// -
  2095  	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
  2096  	AWSS3CopySourceKey = attribute.Key("aws.s3.copy_source")
  2097  
  2098  	// AWSS3UploadIDKey is the attribute Key conforming to the
  2099  	// "aws.s3.upload_id" semantic conventions. It represents the upload ID
  2100  	// that identifies the multipart upload.
  2101  	//
  2102  	// Type: string
  2103  	// RequirementLevel: Optional
  2104  	// Stability: stable
  2105  	// Examples: 'dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ'
  2106  	// Note: The `upload_id` attribute applies to S3 multipart-upload
  2107  	// operations and corresponds to the `--upload-id` parameter
  2108  	// of the [S3
  2109  	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
  2110  	// multipart operations.
  2111  	// This applies in particular to the following operations:
  2112  	//
  2113  	// -
  2114  	// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
  2115  	// -
  2116  	// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
  2117  	// -
  2118  	// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
  2119  	// -
  2120  	// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
  2121  	// -
  2122  	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
  2123  	AWSS3UploadIDKey = attribute.Key("aws.s3.upload_id")
  2124  
  2125  	// AWSS3DeleteKey is the attribute Key conforming to the "aws.s3.delete"
  2126  	// semantic conventions. It represents the delete request container that
  2127  	// specifies the objects to be deleted.
  2128  	//
  2129  	// Type: string
  2130  	// RequirementLevel: Optional
  2131  	// Stability: stable
  2132  	// Examples:
  2133  	// 'Objects=[{Key=string,VersionID=string},{Key=string,VersionID=string}],Quiet=boolean'
  2134  	// Note: The `delete` attribute is only applicable to the
  2135  	// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
  2136  	// operation.
  2137  	// The `delete` attribute corresponds to the `--delete` parameter of the
  2138  	// [delete-objects operation within the S3
  2139  	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).
  2140  	AWSS3DeleteKey = attribute.Key("aws.s3.delete")
  2141  
  2142  	// AWSS3PartNumberKey is the attribute Key conforming to the
  2143  	// "aws.s3.part_number" semantic conventions. It represents the part number
  2144  	// of the part being uploaded in a multipart-upload operation. This is a
  2145  	// positive integer between 1 and 10,000.
  2146  	//
  2147  	// Type: int
  2148  	// RequirementLevel: Optional
  2149  	// Stability: stable
  2150  	// Examples: 3456
  2151  	// Note: The `part_number` attribute is only applicable to the
  2152  	// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
  2153  	// and
  2154  	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
  2155  	// operations.
  2156  	// The `part_number` attribute corresponds to the `--part-number` parameter
  2157  	// of the
  2158  	// [upload-part operation within the S3
  2159  	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
  2160  	AWSS3PartNumberKey = attribute.Key("aws.s3.part_number")
  2161  )
  2162  
  2163  // AWSS3Bucket returns an attribute KeyValue conforming to the
  2164  // "aws.s3.bucket" semantic conventions. It represents the S3 bucket name the
  2165  // request refers to. Corresponds to the `--bucket` parameter of the [S3
  2166  // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
  2167  // operations.
  2168  func AWSS3Bucket(val string) attribute.KeyValue {
  2169  	return AWSS3BucketKey.String(val)
  2170  }
  2171  
  2172  // AWSS3Key returns an attribute KeyValue conforming to the "aws.s3.key"
  2173  // semantic conventions. It represents the S3 object key the request refers to.
  2174  // Corresponds to the `--key` parameter of the [S3
  2175  // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
  2176  // operations.
  2177  func AWSS3Key(val string) attribute.KeyValue {
  2178  	return AWSS3KeyKey.String(val)
  2179  }
  2180  
  2181  // AWSS3CopySource returns an attribute KeyValue conforming to the
  2182  // "aws.s3.copy_source" semantic conventions. It represents the source object
  2183  // (in the form `bucket`/`key`) for the copy operation.
  2184  func AWSS3CopySource(val string) attribute.KeyValue {
  2185  	return AWSS3CopySourceKey.String(val)
  2186  }
  2187  
  2188  // AWSS3UploadID returns an attribute KeyValue conforming to the
  2189  // "aws.s3.upload_id" semantic conventions. It represents the upload ID that
  2190  // identifies the multipart upload.
  2191  func AWSS3UploadID(val string) attribute.KeyValue {
  2192  	return AWSS3UploadIDKey.String(val)
  2193  }
  2194  
  2195  // AWSS3Delete returns an attribute KeyValue conforming to the
  2196  // "aws.s3.delete" semantic conventions. It represents the delete request
  2197  // container that specifies the objects to be deleted.
  2198  func AWSS3Delete(val string) attribute.KeyValue {
  2199  	return AWSS3DeleteKey.String(val)
  2200  }
  2201  
  2202  // AWSS3PartNumber returns an attribute KeyValue conforming to the
  2203  // "aws.s3.part_number" semantic conventions. It represents the part number of
  2204  // the part being uploaded in a multipart-upload operation. This is a positive
  2205  // integer between 1 and 10,000.
  2206  func AWSS3PartNumber(val int) attribute.KeyValue {
  2207  	return AWSS3PartNumberKey.Int(val)
  2208  }
  2209  
  2210  // Semantic conventions to apply when instrumenting the GraphQL implementation.
  2211  // They map GraphQL operations to attributes on a Span.
  2212  const (
  2213  	// GraphqlOperationNameKey is the attribute Key conforming to the
  2214  	// "graphql.operation.name" semantic conventions. It represents the name of
  2215  	// the operation being executed.
  2216  	//
  2217  	// Type: string
  2218  	// RequirementLevel: Optional
  2219  	// Stability: stable
  2220  	// Examples: 'findBookByID'
  2221  	GraphqlOperationNameKey = attribute.Key("graphql.operation.name")
  2222  
  2223  	// GraphqlOperationTypeKey is the attribute Key conforming to the
  2224  	// "graphql.operation.type" semantic conventions. It represents the type of
  2225  	// the operation being executed.
  2226  	//
  2227  	// Type: Enum
  2228  	// RequirementLevel: Optional
  2229  	// Stability: stable
  2230  	// Examples: 'query', 'mutation', 'subscription'
  2231  	GraphqlOperationTypeKey = attribute.Key("graphql.operation.type")
  2232  
  2233  	// GraphqlDocumentKey is the attribute Key conforming to the
  2234  	// "graphql.document" semantic conventions. It represents the GraphQL
  2235  	// document being executed.
  2236  	//
  2237  	// Type: string
  2238  	// RequirementLevel: Optional
  2239  	// Stability: stable
  2240  	// Examples: 'query findBookByID { bookByID(id: ?) { name } }'
  2241  	// Note: The value may be sanitized to exclude sensitive information.
  2242  	GraphqlDocumentKey = attribute.Key("graphql.document")
  2243  )
  2244  
  2245  var (
  2246  	// GraphQL query
  2247  	GraphqlOperationTypeQuery = GraphqlOperationTypeKey.String("query")
  2248  	// GraphQL mutation
  2249  	GraphqlOperationTypeMutation = GraphqlOperationTypeKey.String("mutation")
  2250  	// GraphQL subscription
  2251  	GraphqlOperationTypeSubscription = GraphqlOperationTypeKey.String("subscription")
  2252  )
  2253  
  2254  // GraphqlOperationName returns an attribute KeyValue conforming to the
  2255  // "graphql.operation.name" semantic conventions. It represents the name of the
  2256  // operation being executed.
  2257  func GraphqlOperationName(val string) attribute.KeyValue {
  2258  	return GraphqlOperationNameKey.String(val)
  2259  }
  2260  
  2261  // GraphqlDocument returns an attribute KeyValue conforming to the
  2262  // "graphql.document" semantic conventions. It represents the GraphQL document
  2263  // being executed.
  2264  func GraphqlDocument(val string) attribute.KeyValue {
  2265  	return GraphqlDocumentKey.String(val)
  2266  }
  2267  
  2268  // General attributes used in messaging systems.
  2269  const (
  2270  	// MessagingSystemKey is the attribute Key conforming to the
  2271  	// "messaging.system" semantic conventions. It represents a string
  2272  	// identifying the messaging system.
  2273  	//
  2274  	// Type: string
  2275  	// RequirementLevel: Required
  2276  	// Stability: stable
  2277  	// Examples: 'kafka', 'rabbitmq', 'rocketmq', 'activemq', 'AmazonSQS'
  2278  	MessagingSystemKey = attribute.Key("messaging.system")
  2279  
  2280  	// MessagingOperationKey is the attribute Key conforming to the
  2281  	// "messaging.operation" semantic conventions. It represents a string
  2282  	// identifying the kind of messaging operation as defined in the [Operation
  2283  	// names](#operation-names) section above.
  2284  	//
  2285  	// Type: Enum
  2286  	// RequirementLevel: Required
  2287  	// Stability: stable
  2288  	// Note: If a custom value is used, it MUST be of low cardinality.
  2289  	MessagingOperationKey = attribute.Key("messaging.operation")
  2290  
  2291  	// MessagingBatchMessageCountKey is the attribute Key conforming to the
  2292  	// "messaging.batch.message_count" semantic conventions. It represents the
  2293  	// number of messages sent, received, or processed in the scope of the
  2294  	// batching operation.
  2295  	//
  2296  	// Type: int
  2297  	// RequirementLevel: ConditionallyRequired (If the span describes an
  2298  	// operation on a batch of messages.)
  2299  	// Stability: stable
  2300  	// Examples: 0, 1, 2
  2301  	// Note: Instrumentations SHOULD NOT set `messaging.batch.message_count` on
  2302  	// spans that operate with a single message. When a messaging client
  2303  	// library supports both batch and single-message API for the same
  2304  	// operation, instrumentations SHOULD use `messaging.batch.message_count`
  2305  	// for batching APIs and SHOULD NOT use it for single-message APIs.
  2306  	MessagingBatchMessageCountKey = attribute.Key("messaging.batch.message_count")
  2307  )
  2308  
  2309  var (
  2310  	// publish
  2311  	MessagingOperationPublish = MessagingOperationKey.String("publish")
  2312  	// receive
  2313  	MessagingOperationReceive = MessagingOperationKey.String("receive")
  2314  	// process
  2315  	MessagingOperationProcess = MessagingOperationKey.String("process")
  2316  )
  2317  
  2318  // MessagingSystem returns an attribute KeyValue conforming to the
  2319  // "messaging.system" semantic conventions. It represents a string identifying
  2320  // the messaging system.
  2321  func MessagingSystem(val string) attribute.KeyValue {
  2322  	return MessagingSystemKey.String(val)
  2323  }
  2324  
  2325  // MessagingBatchMessageCount returns an attribute KeyValue conforming to
  2326  // the "messaging.batch.message_count" semantic conventions. It represents the
  2327  // number of messages sent, received, or processed in the scope of the batching
  2328  // operation.
  2329  func MessagingBatchMessageCount(val int) attribute.KeyValue {
  2330  	return MessagingBatchMessageCountKey.Int(val)
  2331  }
  2332  
  2333  // Semantic convention for a consumer of messages received from a messaging
  2334  // system
  2335  const (
  2336  	// MessagingConsumerIDKey is the attribute Key conforming to the
  2337  	// "messaging.consumer.id" semantic conventions. It represents the
  2338  	// identifier for the consumer receiving a message. For Kafka, set it to
  2339  	// `{messaging.kafka.consumer.group} - {messaging.kafka.client_id}`, if
  2340  	// both are present, or only `messaging.kafka.consumer.group`. For brokers,
  2341  	// such as RabbitMQ and Artemis, set it to the `client_id` of the client
  2342  	// consuming the message.
  2343  	//
  2344  	// Type: string
  2345  	// RequirementLevel: Optional
  2346  	// Stability: stable
  2347  	// Examples: 'mygroup - client-6'
  2348  	MessagingConsumerIDKey = attribute.Key("messaging.consumer.id")
  2349  )
  2350  
  2351  // MessagingConsumerID returns an attribute KeyValue conforming to the
  2352  // "messaging.consumer.id" semantic conventions. It represents the identifier
  2353  // for the consumer receiving a message. For Kafka, set it to
  2354  // `{messaging.kafka.consumer.group} - {messaging.kafka.client_id}`, if both
  2355  // are present, or only `messaging.kafka.consumer.group`. For brokers, such as
  2356  // RabbitMQ and Artemis, set it to the `client_id` of the client consuming the
  2357  // message.
  2358  func MessagingConsumerID(val string) attribute.KeyValue {
  2359  	return MessagingConsumerIDKey.String(val)
  2360  }
  2361  
  2362  // Semantic conventions for remote procedure calls.
  2363  const (
  2364  	// RPCSystemKey is the attribute Key conforming to the "rpc.system"
  2365  	// semantic conventions. It represents a string identifying the remoting
  2366  	// system. See below for a list of well-known identifiers.
  2367  	//
  2368  	// Type: Enum
  2369  	// RequirementLevel: Required
  2370  	// Stability: stable
  2371  	RPCSystemKey = attribute.Key("rpc.system")
  2372  
  2373  	// RPCServiceKey is the attribute Key conforming to the "rpc.service"
  2374  	// semantic conventions. It represents the full (logical) name of the
  2375  	// service being called, including its package name, if applicable.
  2376  	//
  2377  	// Type: string
  2378  	// RequirementLevel: Recommended
  2379  	// Stability: stable
  2380  	// Examples: 'myservice.EchoService'
  2381  	// Note: This is the logical name of the service from the RPC interface
  2382  	// perspective, which can be different from the name of any implementing
  2383  	// class. The `code.namespace` attribute may be used to store the latter
  2384  	// (despite the attribute name, it may include a class name; e.g., class
  2385  	// with method actually executing the call on the server side, RPC client
  2386  	// stub class on the client side).
  2387  	RPCServiceKey = attribute.Key("rpc.service")
  2388  
  2389  	// RPCMethodKey is the attribute Key conforming to the "rpc.method"
  2390  	// semantic conventions. It represents the name of the (logical) method
  2391  	// being called, must be equal to the $method part in the span name.
  2392  	//
  2393  	// Type: string
  2394  	// RequirementLevel: Recommended
  2395  	// Stability: stable
  2396  	// Examples: 'exampleMethod'
  2397  	// Note: This is the logical name of the method from the RPC interface
  2398  	// perspective, which can be different from the name of any implementing
  2399  	// method/function. The `code.function` attribute may be used to store the
  2400  	// latter (e.g., method actually executing the call on the server side, RPC
  2401  	// client stub method on the client side).
  2402  	RPCMethodKey = attribute.Key("rpc.method")
  2403  )
  2404  
  2405  var (
  2406  	// gRPC
  2407  	RPCSystemGRPC = RPCSystemKey.String("grpc")
  2408  	// Java RMI
  2409  	RPCSystemJavaRmi = RPCSystemKey.String("java_rmi")
  2410  	// .NET WCF
  2411  	RPCSystemDotnetWcf = RPCSystemKey.String("dotnet_wcf")
  2412  	// Apache Dubbo
  2413  	RPCSystemApacheDubbo = RPCSystemKey.String("apache_dubbo")
  2414  	// Connect RPC
  2415  	RPCSystemConnectRPC = RPCSystemKey.String("connect_rpc")
  2416  )
  2417  
  2418  // RPCService returns an attribute KeyValue conforming to the "rpc.service"
  2419  // semantic conventions. It represents the full (logical) name of the service
  2420  // being called, including its package name, if applicable.
  2421  func RPCService(val string) attribute.KeyValue {
  2422  	return RPCServiceKey.String(val)
  2423  }
  2424  
  2425  // RPCMethod returns an attribute KeyValue conforming to the "rpc.method"
  2426  // semantic conventions. It represents the name of the (logical) method being
  2427  // called, must be equal to the $method part in the span name.
  2428  func RPCMethod(val string) attribute.KeyValue {
  2429  	return RPCMethodKey.String(val)
  2430  }
  2431  
  2432  // Tech-specific attributes for gRPC.
  2433  const (
  2434  	// RPCGRPCStatusCodeKey is the attribute Key conforming to the
  2435  	// "rpc.grpc.status_code" semantic conventions. It represents the [numeric
  2436  	// status
  2437  	// code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of
  2438  	// the gRPC request.
  2439  	//
  2440  	// Type: Enum
  2441  	// RequirementLevel: Required
  2442  	// Stability: stable
  2443  	RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
  2444  )
  2445  
  2446  var (
  2447  	// OK
  2448  	RPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0)
  2449  	// CANCELLED
  2450  	RPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1)
  2451  	// UNKNOWN
  2452  	RPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2)
  2453  	// INVALID_ARGUMENT
  2454  	RPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3)
  2455  	// DEADLINE_EXCEEDED
  2456  	RPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4)
  2457  	// NOT_FOUND
  2458  	RPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5)
  2459  	// ALREADY_EXISTS
  2460  	RPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6)
  2461  	// PERMISSION_DENIED
  2462  	RPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7)
  2463  	// RESOURCE_EXHAUSTED
  2464  	RPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8)
  2465  	// FAILED_PRECONDITION
  2466  	RPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9)
  2467  	// ABORTED
  2468  	RPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10)
  2469  	// OUT_OF_RANGE
  2470  	RPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11)
  2471  	// UNIMPLEMENTED
  2472  	RPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12)
  2473  	// INTERNAL
  2474  	RPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13)
  2475  	// UNAVAILABLE
  2476  	RPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14)
  2477  	// DATA_LOSS
  2478  	RPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15)
  2479  	// UNAUTHENTICATED
  2480  	RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)
  2481  )
  2482  
  2483  // Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).
  2484  const (
  2485  	// RPCJsonrpcVersionKey is the attribute Key conforming to the
  2486  	// "rpc.jsonrpc.version" semantic conventions. It represents the protocol
  2487  	// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0
  2488  	// does not specify this, the value can be omitted.
  2489  	//
  2490  	// Type: string
  2491  	// RequirementLevel: ConditionallyRequired (If other than the default
  2492  	// version (`1.0`))
  2493  	// Stability: stable
  2494  	// Examples: '2.0', '1.0'
  2495  	RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version")
  2496  
  2497  	// RPCJsonrpcRequestIDKey is the attribute Key conforming to the
  2498  	// "rpc.jsonrpc.request_id" semantic conventions. It represents the `id`
  2499  	// property of request or response. Since protocol allows id to be int,
  2500  	// string, `null` or missing (for notifications), value is expected to be
  2501  	// cast to string for simplicity. Use empty string in case of `null` value.
  2502  	// Omit entirely if this is a notification.
  2503  	//
  2504  	// Type: string
  2505  	// RequirementLevel: Optional
  2506  	// Stability: stable
  2507  	// Examples: '10', 'request-7', ''
  2508  	RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id")
  2509  
  2510  	// RPCJsonrpcErrorCodeKey is the attribute Key conforming to the
  2511  	// "rpc.jsonrpc.error_code" semantic conventions. It represents the
  2512  	// `error.code` property of response if it is an error response.
  2513  	//
  2514  	// Type: int
  2515  	// RequirementLevel: ConditionallyRequired (If response is not successful.)
  2516  	// Stability: stable
  2517  	// Examples: -32700, 100
  2518  	RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code")
  2519  
  2520  	// RPCJsonrpcErrorMessageKey is the attribute Key conforming to the
  2521  	// "rpc.jsonrpc.error_message" semantic conventions. It represents the
  2522  	// `error.message` property of response if it is an error response.
  2523  	//
  2524  	// Type: string
  2525  	// RequirementLevel: Optional
  2526  	// Stability: stable
  2527  	// Examples: 'Parse error', 'User already exists'
  2528  	RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message")
  2529  )
  2530  
  2531  // RPCJsonrpcVersion returns an attribute KeyValue conforming to the
  2532  // "rpc.jsonrpc.version" semantic conventions. It represents the protocol
  2533  // version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0
  2534  // does not specify this, the value can be omitted.
  2535  func RPCJsonrpcVersion(val string) attribute.KeyValue {
  2536  	return RPCJsonrpcVersionKey.String(val)
  2537  }
  2538  
  2539  // RPCJsonrpcRequestID returns an attribute KeyValue conforming to the
  2540  // "rpc.jsonrpc.request_id" semantic conventions. It represents the `id`
  2541  // property of request or response. Since protocol allows id to be int, string,
  2542  // `null` or missing (for notifications), value is expected to be cast to
  2543  // string for simplicity. Use empty string in case of `null` value. Omit
  2544  // entirely if this is a notification.
  2545  func RPCJsonrpcRequestID(val string) attribute.KeyValue {
  2546  	return RPCJsonrpcRequestIDKey.String(val)
  2547  }
  2548  
  2549  // RPCJsonrpcErrorCode returns an attribute KeyValue conforming to the
  2550  // "rpc.jsonrpc.error_code" semantic conventions. It represents the
  2551  // `error.code` property of response if it is an error response.
  2552  func RPCJsonrpcErrorCode(val int) attribute.KeyValue {
  2553  	return RPCJsonrpcErrorCodeKey.Int(val)
  2554  }
  2555  
  2556  // RPCJsonrpcErrorMessage returns an attribute KeyValue conforming to the
  2557  // "rpc.jsonrpc.error_message" semantic conventions. It represents the
  2558  // `error.message` property of response if it is an error response.
  2559  func RPCJsonrpcErrorMessage(val string) attribute.KeyValue {
  2560  	return RPCJsonrpcErrorMessageKey.String(val)
  2561  }
  2562  
  2563  // Tech-specific attributes for Connect RPC.
  2564  const (
  2565  	// RPCConnectRPCErrorCodeKey is the attribute Key conforming to the
  2566  	// "rpc.connect_rpc.error_code" semantic conventions. It represents the
  2567  	// [error codes](https://connect.build/docs/protocol/#error-codes) of the
  2568  	// Connect request. Error codes are always string values.
  2569  	//
  2570  	// Type: Enum
  2571  	// RequirementLevel: ConditionallyRequired (If response is not successful
  2572  	// and if error code available.)
  2573  	// Stability: stable
  2574  	RPCConnectRPCErrorCodeKey = attribute.Key("rpc.connect_rpc.error_code")
  2575  )
  2576  
  2577  var (
  2578  	// cancelled
  2579  	RPCConnectRPCErrorCodeCancelled = RPCConnectRPCErrorCodeKey.String("cancelled")
  2580  	// unknown
  2581  	RPCConnectRPCErrorCodeUnknown = RPCConnectRPCErrorCodeKey.String("unknown")
  2582  	// invalid_argument
  2583  	RPCConnectRPCErrorCodeInvalidArgument = RPCConnectRPCErrorCodeKey.String("invalid_argument")
  2584  	// deadline_exceeded
  2585  	RPCConnectRPCErrorCodeDeadlineExceeded = RPCConnectRPCErrorCodeKey.String("deadline_exceeded")
  2586  	// not_found
  2587  	RPCConnectRPCErrorCodeNotFound = RPCConnectRPCErrorCodeKey.String("not_found")
  2588  	// already_exists
  2589  	RPCConnectRPCErrorCodeAlreadyExists = RPCConnectRPCErrorCodeKey.String("already_exists")
  2590  	// permission_denied
  2591  	RPCConnectRPCErrorCodePermissionDenied = RPCConnectRPCErrorCodeKey.String("permission_denied")
  2592  	// resource_exhausted
  2593  	RPCConnectRPCErrorCodeResourceExhausted = RPCConnectRPCErrorCodeKey.String("resource_exhausted")
  2594  	// failed_precondition
  2595  	RPCConnectRPCErrorCodeFailedPrecondition = RPCConnectRPCErrorCodeKey.String("failed_precondition")
  2596  	// aborted
  2597  	RPCConnectRPCErrorCodeAborted = RPCConnectRPCErrorCodeKey.String("aborted")
  2598  	// out_of_range
  2599  	RPCConnectRPCErrorCodeOutOfRange = RPCConnectRPCErrorCodeKey.String("out_of_range")
  2600  	// unimplemented
  2601  	RPCConnectRPCErrorCodeUnimplemented = RPCConnectRPCErrorCodeKey.String("unimplemented")
  2602  	// internal
  2603  	RPCConnectRPCErrorCodeInternal = RPCConnectRPCErrorCodeKey.String("internal")
  2604  	// unavailable
  2605  	RPCConnectRPCErrorCodeUnavailable = RPCConnectRPCErrorCodeKey.String("unavailable")
  2606  	// data_loss
  2607  	RPCConnectRPCErrorCodeDataLoss = RPCConnectRPCErrorCodeKey.String("data_loss")
  2608  	// unauthenticated
  2609  	RPCConnectRPCErrorCodeUnauthenticated = RPCConnectRPCErrorCodeKey.String("unauthenticated")
  2610  )
  2611  

View as plain text