attribute_group.go

   1// Copyright The OpenTelemetry Authors
   2// SPDX-License-Identifier: Apache-2.0
   3
   4// Code generated from semantic convention specification. DO NOT EDIT.
   5
   6package semconv // import "go.opentelemetry.io/otel/semconv/v1.26.0"
   7
   8import "go.opentelemetry.io/otel/attribute"
   9
  10// The Android platform on which the Android application is running.
  11const (
  12	// AndroidOSAPILevelKey is the attribute Key conforming to the
  13	// "android.os.api_level" semantic conventions. It represents the uniquely
  14	// identifies the framework API revision offered by a version
  15	// (`os.version`) of the android operating system. More information can be
  16	// found
  17	// [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#APILevels).
  18	//
  19	// Type: string
  20	// RequirementLevel: Optional
  21	// Stability: experimental
  22	// Examples: '33', '32'
  23	AndroidOSAPILevelKey = attribute.Key("android.os.api_level")
  24)
  25
  26// AndroidOSAPILevel returns an attribute KeyValue conforming to the
  27// "android.os.api_level" semantic conventions. It represents the uniquely
  28// identifies the framework API revision offered by a version (`os.version`) of
  29// the android operating system. More information can be found
  30// [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#APILevels).
  31func AndroidOSAPILevel(val string) attribute.KeyValue {
  32	return AndroidOSAPILevelKey.String(val)
  33}
  34
  35// ASP.NET Core attributes
  36const (
  37	// AspnetcoreRateLimitingResultKey is the attribute Key conforming to the
  38	// "aspnetcore.rate_limiting.result" semantic conventions. It represents
  39	// the rate-limiting result, shows whether the lease was acquired or
  40	// contains a rejection reason
  41	//
  42	// Type: Enum
  43	// RequirementLevel: Required
  44	// Stability: stable
  45	// Examples: 'acquired', 'request_canceled'
  46	AspnetcoreRateLimitingResultKey = attribute.Key("aspnetcore.rate_limiting.result")
  47
  48	// AspnetcoreDiagnosticsHandlerTypeKey is the attribute Key conforming to
  49	// the "aspnetcore.diagnostics.handler.type" semantic conventions. It
  50	// represents the full type name of the
  51	// [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler)
  52	// implementation that handled the exception.
  53	//
  54	// Type: string
  55	// RequirementLevel: ConditionallyRequired (if and only if the exception
  56	// was handled by this handler.)
  57	// Stability: stable
  58	// Examples: 'Contoso.MyHandler'
  59	AspnetcoreDiagnosticsHandlerTypeKey = attribute.Key("aspnetcore.diagnostics.handler.type")
  60
  61	// AspnetcoreDiagnosticsExceptionResultKey is the attribute Key conforming
  62	// to the "aspnetcore.diagnostics.exception.result" semantic conventions.
  63	// It represents the aSP.NET Core exception middleware handling result
  64	//
  65	// Type: Enum
  66	// RequirementLevel: Optional
  67	// Stability: stable
  68	// Examples: 'handled', 'unhandled'
  69	AspnetcoreDiagnosticsExceptionResultKey = attribute.Key("aspnetcore.diagnostics.exception.result")
  70
  71	// AspnetcoreRateLimitingPolicyKey is the attribute Key conforming to the
  72	// "aspnetcore.rate_limiting.policy" semantic conventions. It represents
  73	// the rate limiting policy name.
  74	//
  75	// Type: string
  76	// RequirementLevel: Optional
  77	// Stability: stable
  78	// Examples: 'fixed', 'sliding', 'token'
  79	AspnetcoreRateLimitingPolicyKey = attribute.Key("aspnetcore.rate_limiting.policy")
  80
  81	// AspnetcoreRequestIsUnhandledKey is the attribute Key conforming to the
  82	// "aspnetcore.request.is_unhandled" semantic conventions. It represents
  83	// the flag indicating if request was handled by the application pipeline.
  84	//
  85	// Type: boolean
  86	// RequirementLevel: Optional
  87	// Stability: stable
  88	// Examples: True
  89	AspnetcoreRequestIsUnhandledKey = attribute.Key("aspnetcore.request.is_unhandled")
  90
  91	// AspnetcoreRoutingIsFallbackKey is the attribute Key conforming to the
  92	// "aspnetcore.routing.is_fallback" semantic conventions. It represents a
  93	// value that indicates whether the matched route is a fallback route.
  94	//
  95	// Type: boolean
  96	// RequirementLevel: Optional
  97	// Stability: stable
  98	// Examples: True
  99	AspnetcoreRoutingIsFallbackKey = attribute.Key("aspnetcore.routing.is_fallback")
 100
 101	// AspnetcoreRoutingMatchStatusKey is the attribute Key conforming to the
 102	// "aspnetcore.routing.match_status" semantic conventions. It represents
 103	// the match result - success or failure
 104	//
 105	// Type: Enum
 106	// RequirementLevel: Optional
 107	// Stability: stable
 108	// Examples: 'success', 'failure'
 109	AspnetcoreRoutingMatchStatusKey = attribute.Key("aspnetcore.routing.match_status")
 110)
 111
 112var (
 113	// Lease was acquired
 114	AspnetcoreRateLimitingResultAcquired = AspnetcoreRateLimitingResultKey.String("acquired")
 115	// Lease request was rejected by the endpoint limiter
 116	AspnetcoreRateLimitingResultEndpointLimiter = AspnetcoreRateLimitingResultKey.String("endpoint_limiter")
 117	// Lease request was rejected by the global limiter
 118	AspnetcoreRateLimitingResultGlobalLimiter = AspnetcoreRateLimitingResultKey.String("global_limiter")
 119	// Lease request was canceled
 120	AspnetcoreRateLimitingResultRequestCanceled = AspnetcoreRateLimitingResultKey.String("request_canceled")
 121)
 122
 123var (
 124	// Exception was handled by the exception handling middleware
 125	AspnetcoreDiagnosticsExceptionResultHandled = AspnetcoreDiagnosticsExceptionResultKey.String("handled")
 126	// Exception was not handled by the exception handling middleware
 127	AspnetcoreDiagnosticsExceptionResultUnhandled = AspnetcoreDiagnosticsExceptionResultKey.String("unhandled")
 128	// Exception handling was skipped because the response had started
 129	AspnetcoreDiagnosticsExceptionResultSkipped = AspnetcoreDiagnosticsExceptionResultKey.String("skipped")
 130	// Exception handling didn't run because the request was aborted
 131	AspnetcoreDiagnosticsExceptionResultAborted = AspnetcoreDiagnosticsExceptionResultKey.String("aborted")
 132)
 133
 134var (
 135	// Match succeeded
 136	AspnetcoreRoutingMatchStatusSuccess = AspnetcoreRoutingMatchStatusKey.String("success")
 137	// Match failed
 138	AspnetcoreRoutingMatchStatusFailure = AspnetcoreRoutingMatchStatusKey.String("failure")
 139)
 140
 141// AspnetcoreDiagnosticsHandlerType returns an attribute KeyValue conforming
 142// to the "aspnetcore.diagnostics.handler.type" semantic conventions. It
 143// represents the full type name of the
 144// [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler)
 145// implementation that handled the exception.
 146func AspnetcoreDiagnosticsHandlerType(val string) attribute.KeyValue {
 147	return AspnetcoreDiagnosticsHandlerTypeKey.String(val)
 148}
 149
 150// AspnetcoreRateLimitingPolicy returns an attribute KeyValue conforming to
 151// the "aspnetcore.rate_limiting.policy" semantic conventions. It represents
 152// the rate limiting policy name.
 153func AspnetcoreRateLimitingPolicy(val string) attribute.KeyValue {
 154	return AspnetcoreRateLimitingPolicyKey.String(val)
 155}
 156
 157// AspnetcoreRequestIsUnhandled returns an attribute KeyValue conforming to
 158// the "aspnetcore.request.is_unhandled" semantic conventions. It represents
 159// the flag indicating if request was handled by the application pipeline.
 160func AspnetcoreRequestIsUnhandled(val bool) attribute.KeyValue {
 161	return AspnetcoreRequestIsUnhandledKey.Bool(val)
 162}
 163
 164// AspnetcoreRoutingIsFallback returns an attribute KeyValue conforming to
 165// the "aspnetcore.routing.is_fallback" semantic conventions. It represents a
 166// value that indicates whether the matched route is a fallback route.
 167func AspnetcoreRoutingIsFallback(val bool) attribute.KeyValue {
 168	return AspnetcoreRoutingIsFallbackKey.Bool(val)
 169}
 170
 171// Generic attributes for AWS services.
 172const (
 173	// AWSRequestIDKey is the attribute Key conforming to the "aws.request_id"
 174	// semantic conventions. It represents the AWS request ID as returned in
 175	// the response headers `x-amz-request-id` or `x-amz-requestid`.
 176	//
 177	// Type: string
 178	// RequirementLevel: Optional
 179	// Stability: experimental
 180	// Examples: '79b9da39-b7ae-508a-a6bc-864b2829c622', 'C9ER4AJX75574TDJ'
 181	AWSRequestIDKey = attribute.Key("aws.request_id")
 182)
 183
 184// AWSRequestID returns an attribute KeyValue conforming to the
 185// "aws.request_id" semantic conventions. It represents the AWS request ID as
 186// returned in the response headers `x-amz-request-id` or `x-amz-requestid`.
 187func AWSRequestID(val string) attribute.KeyValue {
 188	return AWSRequestIDKey.String(val)
 189}
 190
 191// Attributes for AWS DynamoDB.
 192const (
 193	// AWSDynamoDBAttributeDefinitionsKey is the attribute Key conforming to
 194	// the "aws.dynamodb.attribute_definitions" semantic conventions. It
 195	// represents the JSON-serialized value of each item in the
 196	// `AttributeDefinitions` request field.
 197	//
 198	// Type: string[]
 199	// RequirementLevel: Optional
 200	// Stability: experimental
 201	// Examples: '{ "AttributeName": "string", "AttributeType": "string" }'
 202	AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions")
 203
 204	// AWSDynamoDBAttributesToGetKey is the attribute Key conforming to the
 205	// "aws.dynamodb.attributes_to_get" semantic conventions. It represents the
 206	// value of the `AttributesToGet` request parameter.
 207	//
 208	// Type: string[]
 209	// RequirementLevel: Optional
 210	// Stability: experimental
 211	// Examples: 'lives', 'id'
 212	AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get")
 213
 214	// AWSDynamoDBConsistentReadKey is the attribute Key conforming to the
 215	// "aws.dynamodb.consistent_read" semantic conventions. It represents the
 216	// value of the `ConsistentRead` request parameter.
 217	//
 218	// Type: boolean
 219	// RequirementLevel: Optional
 220	// Stability: experimental
 221	AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read")
 222
 223	// AWSDynamoDBConsumedCapacityKey is the attribute Key conforming to the
 224	// "aws.dynamodb.consumed_capacity" semantic conventions. It represents the
 225	// JSON-serialized value of each item in the `ConsumedCapacity` response
 226	// field.
 227	//
 228	// Type: string[]
 229	// RequirementLevel: Optional
 230	// Stability: experimental
 231	// Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": {
 232	// "string" : { "CapacityUnits": number, "ReadCapacityUnits": number,
 233	// "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" :
 234	// { "CapacityUnits": number, "ReadCapacityUnits": number,
 235	// "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table":
 236	// { "CapacityUnits": number, "ReadCapacityUnits": number,
 237	// "WriteCapacityUnits": number }, "TableName": "string",
 238	// "WriteCapacityUnits": number }'
 239	AWSDynamoDBConsumedCapacityKey = attribute.Key("aws.dynamodb.consumed_capacity")
 240
 241	// AWSDynamoDBCountKey is the attribute Key conforming to the
 242	// "aws.dynamodb.count" semantic conventions. It represents the value of
 243	// the `Count` response parameter.
 244	//
 245	// Type: int
 246	// RequirementLevel: Optional
 247	// Stability: experimental
 248	// Examples: 10
 249	AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count")
 250
 251	// AWSDynamoDBExclusiveStartTableKey is the attribute Key conforming to the
 252	// "aws.dynamodb.exclusive_start_table" semantic conventions. It represents
 253	// the value of the `ExclusiveStartTableName` request parameter.
 254	//
 255	// Type: string
 256	// RequirementLevel: Optional
 257	// Stability: experimental
 258	// Examples: 'Users', 'CatsTable'
 259	AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table")
 260
 261	// AWSDynamoDBGlobalSecondaryIndexUpdatesKey is the attribute Key
 262	// conforming to the "aws.dynamodb.global_secondary_index_updates" semantic
 263	// conventions. It represents the JSON-serialized value of each item in the
 264	// `GlobalSecondaryIndexUpdates` request field.
 265	//
 266	// Type: string[]
 267	// RequirementLevel: Optional
 268	// Stability: experimental
 269	// Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ {
 270	// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
 271	// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" },
 272	// "ProvisionedThroughput": { "ReadCapacityUnits": number,
 273	// "WriteCapacityUnits": number } }'
 274	AWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key("aws.dynamodb.global_secondary_index_updates")
 275
 276	// AWSDynamoDBGlobalSecondaryIndexesKey is the attribute Key conforming to
 277	// the "aws.dynamodb.global_secondary_indexes" semantic conventions. It
 278	// represents the JSON-serialized value of each item of the
 279	// `GlobalSecondaryIndexes` request field
 280	//
 281	// Type: string[]
 282	// RequirementLevel: Optional
 283	// Stability: experimental
 284	// Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName":
 285	// "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [
 286	// "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": {
 287	// "ReadCapacityUnits": number, "WriteCapacityUnits": number } }'
 288	AWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key("aws.dynamodb.global_secondary_indexes")
 289
 290	// AWSDynamoDBIndexNameKey is the attribute Key conforming to the
 291	// "aws.dynamodb.index_name" semantic conventions. It represents the value
 292	// of the `IndexName` request parameter.
 293	//
 294	// Type: string
 295	// RequirementLevel: Optional
 296	// Stability: experimental
 297	// Examples: 'name_to_group'
 298	AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name")
 299
 300	// AWSDynamoDBItemCollectionMetricsKey is the attribute Key conforming to
 301	// the "aws.dynamodb.item_collection_metrics" semantic conventions. It
 302	// represents the JSON-serialized value of the `ItemCollectionMetrics`
 303	// response field.
 304	//
 305	// Type: string
 306	// RequirementLevel: Optional
 307	// Stability: experimental
 308	// Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B":
 309	// blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": {
 310	// "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ],
 311	// "NULL": boolean, "S": "string", "SS": [ "string" ] } },
 312	// "SizeEstimateRangeGB": [ number ] } ] }'
 313	AWSDynamoDBItemCollectionMetricsKey = attribute.Key("aws.dynamodb.item_collection_metrics")
 314
 315	// AWSDynamoDBLimitKey is the attribute Key conforming to the
 316	// "aws.dynamodb.limit" semantic conventions. It represents the value of
 317	// the `Limit` request parameter.
 318	//
 319	// Type: int
 320	// RequirementLevel: Optional
 321	// Stability: experimental
 322	// Examples: 10
 323	AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit")
 324
 325	// AWSDynamoDBLocalSecondaryIndexesKey is the attribute Key conforming to
 326	// the "aws.dynamodb.local_secondary_indexes" semantic conventions. It
 327	// represents the JSON-serialized value of each item of the
 328	// `LocalSecondaryIndexes` request field.
 329	//
 330	// Type: string[]
 331	// RequirementLevel: Optional
 332	// Stability: experimental
 333	// Examples: '{ "IndexARN": "string", "IndexName": "string",
 334	// "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ {
 335	// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
 336	// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }'
 337	AWSDynamoDBLocalSecondaryIndexesKey = attribute.Key("aws.dynamodb.local_secondary_indexes")
 338
 339	// AWSDynamoDBProjectionKey is the attribute Key conforming to the
 340	// "aws.dynamodb.projection" semantic conventions. It represents the value
 341	// of the `ProjectionExpression` request parameter.
 342	//
 343	// Type: string
 344	// RequirementLevel: Optional
 345	// Stability: experimental
 346	// Examples: 'Title', 'Title, Price, Color', 'Title, Description,
 347	// RelatedItems, ProductReviews'
 348	AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection")
 349
 350	// AWSDynamoDBProvisionedReadCapacityKey is the attribute Key conforming to
 351	// the "aws.dynamodb.provisioned_read_capacity" semantic conventions. It
 352	// represents the value of the `ProvisionedThroughput.ReadCapacityUnits`
 353	// request parameter.
 354	//
 355	// Type: double
 356	// RequirementLevel: Optional
 357	// Stability: experimental
 358	// Examples: 1.0, 2.0
 359	AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity")
 360
 361	// AWSDynamoDBProvisionedWriteCapacityKey is the attribute Key conforming
 362	// to the "aws.dynamodb.provisioned_write_capacity" semantic conventions.
 363	// It represents the value of the
 364	// `ProvisionedThroughput.WriteCapacityUnits` request parameter.
 365	//
 366	// Type: double
 367	// RequirementLevel: Optional
 368	// Stability: experimental
 369	// Examples: 1.0, 2.0
 370	AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity")
 371
 372	// AWSDynamoDBScanForwardKey is the attribute Key conforming to the
 373	// "aws.dynamodb.scan_forward" semantic conventions. It represents the
 374	// value of the `ScanIndexForward` request parameter.
 375	//
 376	// Type: boolean
 377	// RequirementLevel: Optional
 378	// Stability: experimental
 379	AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward")
 380
 381	// AWSDynamoDBScannedCountKey is the attribute Key conforming to the
 382	// "aws.dynamodb.scanned_count" semantic conventions. It represents the
 383	// value of the `ScannedCount` response parameter.
 384	//
 385	// Type: int
 386	// RequirementLevel: Optional
 387	// Stability: experimental
 388	// Examples: 50
 389	AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count")
 390
 391	// AWSDynamoDBSegmentKey is the attribute Key conforming to the
 392	// "aws.dynamodb.segment" semantic conventions. It represents the value of
 393	// the `Segment` request parameter.
 394	//
 395	// Type: int
 396	// RequirementLevel: Optional
 397	// Stability: experimental
 398	// Examples: 10
 399	AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment")
 400
 401	// AWSDynamoDBSelectKey is the attribute Key conforming to the
 402	// "aws.dynamodb.select" semantic conventions. It represents the value of
 403	// the `Select` request parameter.
 404	//
 405	// Type: string
 406	// RequirementLevel: Optional
 407	// Stability: experimental
 408	// Examples: 'ALL_ATTRIBUTES', 'COUNT'
 409	AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select")
 410
 411	// AWSDynamoDBTableCountKey is the attribute Key conforming to the
 412	// "aws.dynamodb.table_count" semantic conventions. It represents the
 413	// number of items in the `TableNames` response parameter.
 414	//
 415	// Type: int
 416	// RequirementLevel: Optional
 417	// Stability: experimental
 418	// Examples: 20
 419	AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count")
 420
 421	// AWSDynamoDBTableNamesKey is the attribute Key conforming to the
 422	// "aws.dynamodb.table_names" semantic conventions. It represents the keys
 423	// in the `RequestItems` object field.
 424	//
 425	// Type: string[]
 426	// RequirementLevel: Optional
 427	// Stability: experimental
 428	// Examples: 'Users', 'Cats'
 429	AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names")
 430
 431	// AWSDynamoDBTotalSegmentsKey is the attribute Key conforming to the
 432	// "aws.dynamodb.total_segments" semantic conventions. It represents the
 433	// value of the `TotalSegments` request parameter.
 434	//
 435	// Type: int
 436	// RequirementLevel: Optional
 437	// Stability: experimental
 438	// Examples: 100
 439	AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments")
 440)
 441
 442// AWSDynamoDBAttributeDefinitions returns an attribute KeyValue conforming
 443// to the "aws.dynamodb.attribute_definitions" semantic conventions. It
 444// represents the JSON-serialized value of each item in the
 445// `AttributeDefinitions` request field.
 446func AWSDynamoDBAttributeDefinitions(val ...string) attribute.KeyValue {
 447	return AWSDynamoDBAttributeDefinitionsKey.StringSlice(val)
 448}
 449
 450// AWSDynamoDBAttributesToGet returns an attribute KeyValue conforming to
 451// the "aws.dynamodb.attributes_to_get" semantic conventions. It represents the
 452// value of the `AttributesToGet` request parameter.
 453func AWSDynamoDBAttributesToGet(val ...string) attribute.KeyValue {
 454	return AWSDynamoDBAttributesToGetKey.StringSlice(val)
 455}
 456
 457// AWSDynamoDBConsistentRead returns an attribute KeyValue conforming to the
 458// "aws.dynamodb.consistent_read" semantic conventions. It represents the value
 459// of the `ConsistentRead` request parameter.
 460func AWSDynamoDBConsistentRead(val bool) attribute.KeyValue {
 461	return AWSDynamoDBConsistentReadKey.Bool(val)
 462}
 463
 464// AWSDynamoDBConsumedCapacity returns an attribute KeyValue conforming to
 465// the "aws.dynamodb.consumed_capacity" semantic conventions. It represents the
 466// JSON-serialized value of each item in the `ConsumedCapacity` response field.
 467func AWSDynamoDBConsumedCapacity(val ...string) attribute.KeyValue {
 468	return AWSDynamoDBConsumedCapacityKey.StringSlice(val)
 469}
 470
 471// AWSDynamoDBCount returns an attribute KeyValue conforming to the
 472// "aws.dynamodb.count" semantic conventions. It represents the value of the
 473// `Count` response parameter.
 474func AWSDynamoDBCount(val int) attribute.KeyValue {
 475	return AWSDynamoDBCountKey.Int(val)
 476}
 477
 478// AWSDynamoDBExclusiveStartTable returns an attribute KeyValue conforming
 479// to the "aws.dynamodb.exclusive_start_table" semantic conventions. It
 480// represents the value of the `ExclusiveStartTableName` request parameter.
 481func AWSDynamoDBExclusiveStartTable(val string) attribute.KeyValue {
 482	return AWSDynamoDBExclusiveStartTableKey.String(val)
 483}
 484
 485// AWSDynamoDBGlobalSecondaryIndexUpdates returns an attribute KeyValue
 486// conforming to the "aws.dynamodb.global_secondary_index_updates" semantic
 487// conventions. It represents the JSON-serialized value of each item in the
 488// `GlobalSecondaryIndexUpdates` request field.
 489func AWSDynamoDBGlobalSecondaryIndexUpdates(val ...string) attribute.KeyValue {
 490	return AWSDynamoDBGlobalSecondaryIndexUpdatesKey.StringSlice(val)
 491}
 492
 493// AWSDynamoDBGlobalSecondaryIndexes returns an attribute KeyValue
 494// conforming to the "aws.dynamodb.global_secondary_indexes" semantic
 495// conventions. It represents the JSON-serialized value of each item of the
 496// `GlobalSecondaryIndexes` request field
 497func AWSDynamoDBGlobalSecondaryIndexes(val ...string) attribute.KeyValue {
 498	return AWSDynamoDBGlobalSecondaryIndexesKey.StringSlice(val)
 499}
 500
 501// AWSDynamoDBIndexName returns an attribute KeyValue conforming to the
 502// "aws.dynamodb.index_name" semantic conventions. It represents the value of
 503// the `IndexName` request parameter.
 504func AWSDynamoDBIndexName(val string) attribute.KeyValue {
 505	return AWSDynamoDBIndexNameKey.String(val)
 506}
 507
 508// AWSDynamoDBItemCollectionMetrics returns an attribute KeyValue conforming
 509// to the "aws.dynamodb.item_collection_metrics" semantic conventions. It
 510// represents the JSON-serialized value of the `ItemCollectionMetrics` response
 511// field.
 512func AWSDynamoDBItemCollectionMetrics(val string) attribute.KeyValue {
 513	return AWSDynamoDBItemCollectionMetricsKey.String(val)
 514}
 515
 516// AWSDynamoDBLimit returns an attribute KeyValue conforming to the
 517// "aws.dynamodb.limit" semantic conventions. It represents the value of the
 518// `Limit` request parameter.
 519func AWSDynamoDBLimit(val int) attribute.KeyValue {
 520	return AWSDynamoDBLimitKey.Int(val)
 521}
 522
 523// AWSDynamoDBLocalSecondaryIndexes returns an attribute KeyValue conforming
 524// to the "aws.dynamodb.local_secondary_indexes" semantic conventions. It
 525// represents the JSON-serialized value of each item of the
 526// `LocalSecondaryIndexes` request field.
 527func AWSDynamoDBLocalSecondaryIndexes(val ...string) attribute.KeyValue {
 528	return AWSDynamoDBLocalSecondaryIndexesKey.StringSlice(val)
 529}
 530
 531// AWSDynamoDBProjection returns an attribute KeyValue conforming to the
 532// "aws.dynamodb.projection" semantic conventions. It represents the value of
 533// the `ProjectionExpression` request parameter.
 534func AWSDynamoDBProjection(val string) attribute.KeyValue {
 535	return AWSDynamoDBProjectionKey.String(val)
 536}
 537
 538// AWSDynamoDBProvisionedReadCapacity returns an attribute KeyValue
 539// conforming to the "aws.dynamodb.provisioned_read_capacity" semantic
 540// conventions. It represents the value of the
 541// `ProvisionedThroughput.ReadCapacityUnits` request parameter.
 542func AWSDynamoDBProvisionedReadCapacity(val float64) attribute.KeyValue {
 543	return AWSDynamoDBProvisionedReadCapacityKey.Float64(val)
 544}
 545
 546// AWSDynamoDBProvisionedWriteCapacity returns an attribute KeyValue
 547// conforming to the "aws.dynamodb.provisioned_write_capacity" semantic
 548// conventions. It represents the value of the
 549// `ProvisionedThroughput.WriteCapacityUnits` request parameter.
 550func AWSDynamoDBProvisionedWriteCapacity(val float64) attribute.KeyValue {
 551	return AWSDynamoDBProvisionedWriteCapacityKey.Float64(val)
 552}
 553
 554// AWSDynamoDBScanForward returns an attribute KeyValue conforming to the
 555// "aws.dynamodb.scan_forward" semantic conventions. It represents the value of
 556// the `ScanIndexForward` request parameter.
 557func AWSDynamoDBScanForward(val bool) attribute.KeyValue {
 558	return AWSDynamoDBScanForwardKey.Bool(val)
 559}
 560
 561// AWSDynamoDBScannedCount returns an attribute KeyValue conforming to the
 562// "aws.dynamodb.scanned_count" semantic conventions. It represents the value
 563// of the `ScannedCount` response parameter.
 564func AWSDynamoDBScannedCount(val int) attribute.KeyValue {
 565	return AWSDynamoDBScannedCountKey.Int(val)
 566}
 567
 568// AWSDynamoDBSegment returns an attribute KeyValue conforming to the
 569// "aws.dynamodb.segment" semantic conventions. It represents the value of the
 570// `Segment` request parameter.
 571func AWSDynamoDBSegment(val int) attribute.KeyValue {
 572	return AWSDynamoDBSegmentKey.Int(val)
 573}
 574
 575// AWSDynamoDBSelect returns an attribute KeyValue conforming to the
 576// "aws.dynamodb.select" semantic conventions. It represents the value of the
 577// `Select` request parameter.
 578func AWSDynamoDBSelect(val string) attribute.KeyValue {
 579	return AWSDynamoDBSelectKey.String(val)
 580}
 581
 582// AWSDynamoDBTableCount returns an attribute KeyValue conforming to the
 583// "aws.dynamodb.table_count" semantic conventions. It represents the number of
 584// items in the `TableNames` response parameter.
 585func AWSDynamoDBTableCount(val int) attribute.KeyValue {
 586	return AWSDynamoDBTableCountKey.Int(val)
 587}
 588
 589// AWSDynamoDBTableNames returns an attribute KeyValue conforming to the
 590// "aws.dynamodb.table_names" semantic conventions. It represents the keys in
 591// the `RequestItems` object field.
 592func AWSDynamoDBTableNames(val ...string) attribute.KeyValue {
 593	return AWSDynamoDBTableNamesKey.StringSlice(val)
 594}
 595
 596// AWSDynamoDBTotalSegments returns an attribute KeyValue conforming to the
 597// "aws.dynamodb.total_segments" semantic conventions. It represents the value
 598// of the `TotalSegments` request parameter.
 599func AWSDynamoDBTotalSegments(val int) attribute.KeyValue {
 600	return AWSDynamoDBTotalSegmentsKey.Int(val)
 601}
 602
 603// Attributes for AWS Elastic Container Service (ECS).
 604const (
 605	// AWSECSTaskIDKey is the attribute Key conforming to the "aws.ecs.task.id"
 606	// semantic conventions. It represents the ID of a running ECS task. The ID
 607	// MUST be extracted from `task.arn`.
 608	//
 609	// Type: string
 610	// RequirementLevel: ConditionallyRequired (If and only if `task.arn` is
 611	// populated.)
 612	// Stability: experimental
 613	// Examples: '10838bed-421f-43ef-870a-f43feacbbb5b',
 614	// '23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd'
 615	AWSECSTaskIDKey = attribute.Key("aws.ecs.task.id")
 616
 617	// AWSECSClusterARNKey is the attribute Key conforming to the
 618	// "aws.ecs.cluster.arn" semantic conventions. It represents the ARN of an
 619	// [ECS
 620	// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
 621	//
 622	// Type: string
 623	// RequirementLevel: Optional
 624	// Stability: experimental
 625	// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'
 626	AWSECSClusterARNKey = attribute.Key("aws.ecs.cluster.arn")
 627
 628	// AWSECSContainerARNKey is the attribute Key conforming to the
 629	// "aws.ecs.container.arn" semantic conventions. It represents the Amazon
 630	// Resource Name (ARN) of an [ECS container
 631	// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
 632	//
 633	// Type: string
 634	// RequirementLevel: Optional
 635	// Stability: experimental
 636	// Examples:
 637	// 'arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9'
 638	AWSECSContainerARNKey = attribute.Key("aws.ecs.container.arn")
 639
 640	// AWSECSLaunchtypeKey is the attribute Key conforming to the
 641	// "aws.ecs.launchtype" semantic conventions. It represents the [launch
 642	// type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 643	// for an ECS task.
 644	//
 645	// Type: Enum
 646	// RequirementLevel: Optional
 647	// Stability: experimental
 648	AWSECSLaunchtypeKey = attribute.Key("aws.ecs.launchtype")
 649
 650	// AWSECSTaskARNKey is the attribute Key conforming to the
 651	// "aws.ecs.task.arn" semantic conventions. It represents the ARN of a
 652	// running [ECS
 653	// task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
 654	//
 655	// Type: string
 656	// RequirementLevel: Optional
 657	// Stability: experimental
 658	// Examples:
 659	// 'arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b',
 660	// 'arn:aws:ecs:us-west-1:123456789123:task/my-cluster/task-id/23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd'
 661	AWSECSTaskARNKey = attribute.Key("aws.ecs.task.arn")
 662
 663	// AWSECSTaskFamilyKey is the attribute Key conforming to the
 664	// "aws.ecs.task.family" semantic conventions. It represents the family
 665	// name of the [ECS task
 666	// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
 667	// used to create the ECS task.
 668	//
 669	// Type: string
 670	// RequirementLevel: Optional
 671	// Stability: experimental
 672	// Examples: 'opentelemetry-family'
 673	AWSECSTaskFamilyKey = attribute.Key("aws.ecs.task.family")
 674
 675	// AWSECSTaskRevisionKey is the attribute Key conforming to the
 676	// "aws.ecs.task.revision" semantic conventions. It represents the revision
 677	// for the task definition used to create the ECS task.
 678	//
 679	// Type: string
 680	// RequirementLevel: Optional
 681	// Stability: experimental
 682	// Examples: '8', '26'
 683	AWSECSTaskRevisionKey = attribute.Key("aws.ecs.task.revision")
 684)
 685
 686var (
 687	// ec2
 688	AWSECSLaunchtypeEC2 = AWSECSLaunchtypeKey.String("ec2")
 689	// fargate
 690	AWSECSLaunchtypeFargate = AWSECSLaunchtypeKey.String("fargate")
 691)
 692
 693// AWSECSTaskID returns an attribute KeyValue conforming to the
 694// "aws.ecs.task.id" semantic conventions. It represents the ID of a running
 695// ECS task. The ID MUST be extracted from `task.arn`.
 696func AWSECSTaskID(val string) attribute.KeyValue {
 697	return AWSECSTaskIDKey.String(val)
 698}
 699
 700// AWSECSClusterARN returns an attribute KeyValue conforming to the
 701// "aws.ecs.cluster.arn" semantic conventions. It represents the ARN of an [ECS
 702// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
 703func AWSECSClusterARN(val string) attribute.KeyValue {
 704	return AWSECSClusterARNKey.String(val)
 705}
 706
 707// AWSECSContainerARN returns an attribute KeyValue conforming to the
 708// "aws.ecs.container.arn" semantic conventions. It represents the Amazon
 709// Resource Name (ARN) of an [ECS container
 710// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
 711func AWSECSContainerARN(val string) attribute.KeyValue {
 712	return AWSECSContainerARNKey.String(val)
 713}
 714
 715// AWSECSTaskARN returns an attribute KeyValue conforming to the
 716// "aws.ecs.task.arn" semantic conventions. It represents the ARN of a running
 717// [ECS
 718// task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
 719func AWSECSTaskARN(val string) attribute.KeyValue {
 720	return AWSECSTaskARNKey.String(val)
 721}
 722
 723// AWSECSTaskFamily returns an attribute KeyValue conforming to the
 724// "aws.ecs.task.family" semantic conventions. It represents the family name of
 725// the [ECS task
 726// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
 727// used to create the ECS task.
 728func AWSECSTaskFamily(val string) attribute.KeyValue {
 729	return AWSECSTaskFamilyKey.String(val)
 730}
 731
 732// AWSECSTaskRevision returns an attribute KeyValue conforming to the
 733// "aws.ecs.task.revision" semantic conventions. It represents the revision for
 734// the task definition used to create the ECS task.
 735func AWSECSTaskRevision(val string) attribute.KeyValue {
 736	return AWSECSTaskRevisionKey.String(val)
 737}
 738
 739// Attributes for AWS Elastic Kubernetes Service (EKS).
 740const (
 741	// AWSEKSClusterARNKey is the attribute Key conforming to the
 742	// "aws.eks.cluster.arn" semantic conventions. It represents the ARN of an
 743	// EKS cluster.
 744	//
 745	// Type: string
 746	// RequirementLevel: Optional
 747	// Stability: experimental
 748	// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'
 749	AWSEKSClusterARNKey = attribute.Key("aws.eks.cluster.arn")
 750)
 751
 752// AWSEKSClusterARN returns an attribute KeyValue conforming to the
 753// "aws.eks.cluster.arn" semantic conventions. It represents the ARN of an EKS
 754// cluster.
 755func AWSEKSClusterARN(val string) attribute.KeyValue {
 756	return AWSEKSClusterARNKey.String(val)
 757}
 758
 759// Attributes for AWS Logs.
 760const (
 761	// AWSLogGroupARNsKey is the attribute Key conforming to the
 762	// "aws.log.group.arns" semantic conventions. It represents the Amazon
 763	// Resource Name(s) (ARN) of the AWS log group(s).
 764	//
 765	// Type: string[]
 766	// RequirementLevel: Optional
 767	// Stability: experimental
 768	// Examples:
 769	// 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*'
 770	// Note: See the [log group ARN format
 771	// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
 772	AWSLogGroupARNsKey = attribute.Key("aws.log.group.arns")
 773
 774	// AWSLogGroupNamesKey is the attribute Key conforming to the
 775	// "aws.log.group.names" semantic conventions. It represents the name(s) of
 776	// the AWS log group(s) an application is writing to.
 777	//
 778	// Type: string[]
 779	// RequirementLevel: Optional
 780	// Stability: experimental
 781	// Examples: '/aws/lambda/my-function', 'opentelemetry-service'
 782	// Note: Multiple log groups must be supported for cases like
 783	// multi-container applications, where a single application has sidecar
 784	// containers, and each write to their own log group.
 785	AWSLogGroupNamesKey = attribute.Key("aws.log.group.names")
 786
 787	// AWSLogStreamARNsKey is the attribute Key conforming to the
 788	// "aws.log.stream.arns" semantic conventions. It represents the ARN(s) of
 789	// the AWS log stream(s).
 790	//
 791	// Type: string[]
 792	// RequirementLevel: Optional
 793	// Stability: experimental
 794	// Examples:
 795	// 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'
 796	// Note: See the [log stream ARN format
 797	// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
 798	// One log group can contain several log streams, so these ARNs necessarily
 799	// identify both a log group and a log stream.
 800	AWSLogStreamARNsKey = attribute.Key("aws.log.stream.arns")
 801
 802	// AWSLogStreamNamesKey is the attribute Key conforming to the
 803	// "aws.log.stream.names" semantic conventions. It represents the name(s)
 804	// of the AWS log stream(s) an application is writing to.
 805	//
 806	// Type: string[]
 807	// RequirementLevel: Optional
 808	// Stability: experimental
 809	// Examples: 'logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'
 810	AWSLogStreamNamesKey = attribute.Key("aws.log.stream.names")
 811)
 812
 813// AWSLogGroupARNs returns an attribute KeyValue conforming to the
 814// "aws.log.group.arns" semantic conventions. It represents the Amazon Resource
 815// Name(s) (ARN) of the AWS log group(s).
 816func AWSLogGroupARNs(val ...string) attribute.KeyValue {
 817	return AWSLogGroupARNsKey.StringSlice(val)
 818}
 819
 820// AWSLogGroupNames returns an attribute KeyValue conforming to the
 821// "aws.log.group.names" semantic conventions. It represents the name(s) of the
 822// AWS log group(s) an application is writing to.
 823func AWSLogGroupNames(val ...string) attribute.KeyValue {
 824	return AWSLogGroupNamesKey.StringSlice(val)
 825}
 826
 827// AWSLogStreamARNs returns an attribute KeyValue conforming to the
 828// "aws.log.stream.arns" semantic conventions. It represents the ARN(s) of the
 829// AWS log stream(s).
 830func AWSLogStreamARNs(val ...string) attribute.KeyValue {
 831	return AWSLogStreamARNsKey.StringSlice(val)
 832}
 833
 834// AWSLogStreamNames returns an attribute KeyValue conforming to the
 835// "aws.log.stream.names" semantic conventions. It represents the name(s) of
 836// the AWS log stream(s) an application is writing to.
 837func AWSLogStreamNames(val ...string) attribute.KeyValue {
 838	return AWSLogStreamNamesKey.StringSlice(val)
 839}
 840
 841// Attributes for AWS Lambda.
 842const (
 843	// AWSLambdaInvokedARNKey is the attribute Key conforming to the
 844	// "aws.lambda.invoked_arn" semantic conventions. It represents the full
 845	// invoked ARN as provided on the `Context` passed to the function
 846	// (`Lambda-Runtime-Invoked-Function-ARN` header on the
 847	// `/runtime/invocation/next` applicable).
 848	//
 849	// Type: string
 850	// RequirementLevel: Optional
 851	// Stability: experimental
 852	// Examples: 'arn:aws:lambda:us-east-1:123456:function:myfunction:myalias'
 853	// Note: This may be different from `cloud.resource_id` if an alias is
 854	// involved.
 855	AWSLambdaInvokedARNKey = attribute.Key("aws.lambda.invoked_arn")
 856)
 857
 858// AWSLambdaInvokedARN returns an attribute KeyValue conforming to the
 859// "aws.lambda.invoked_arn" semantic conventions. It represents the full
 860// invoked ARN as provided on the `Context` passed to the function
 861// (`Lambda-Runtime-Invoked-Function-ARN` header on the
 862// `/runtime/invocation/next` applicable).
 863func AWSLambdaInvokedARN(val string) attribute.KeyValue {
 864	return AWSLambdaInvokedARNKey.String(val)
 865}
 866
 867// Attributes for AWS S3.
 868const (
 869	// AWSS3BucketKey is the attribute Key conforming to the "aws.s3.bucket"
 870	// semantic conventions. It represents the S3 bucket name the request
 871	// refers to. Corresponds to the `--bucket` parameter of the [S3
 872	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
 873	// operations.
 874	//
 875	// Type: string
 876	// RequirementLevel: Optional
 877	// Stability: experimental
 878	// Examples: 'some-bucket-name'
 879	// Note: The `bucket` attribute is applicable to all S3 operations that
 880	// reference a bucket, i.e. that require the bucket name as a mandatory
 881	// parameter.
 882	// This applies to almost all S3 operations except `list-buckets`.
 883	AWSS3BucketKey = attribute.Key("aws.s3.bucket")
 884
 885	// AWSS3CopySourceKey is the attribute Key conforming to the
 886	// "aws.s3.copy_source" semantic conventions. It represents the source
 887	// object (in the form `bucket`/`key`) for the copy operation.
 888	//
 889	// Type: string
 890	// RequirementLevel: Optional
 891	// Stability: experimental
 892	// Examples: 'someFile.yml'
 893	// Note: The `copy_source` attribute applies to S3 copy operations and
 894	// corresponds to the `--copy-source` parameter
 895	// of the [copy-object operation within the S3
 896	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).
 897	// This applies in particular to the following operations:
 898	//
 899	// -
 900	// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
 901	// -
 902	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
 903	AWSS3CopySourceKey = attribute.Key("aws.s3.copy_source")
 904
 905	// AWSS3DeleteKey is the attribute Key conforming to the "aws.s3.delete"
 906	// semantic conventions. It represents the delete request container that
 907	// specifies the objects to be deleted.
 908	//
 909	// Type: string
 910	// RequirementLevel: Optional
 911	// Stability: experimental
 912	// Examples:
 913	// 'Objects=[{Key=string,VersionID=string},{Key=string,VersionID=string}],Quiet=boolean'
 914	// Note: The `delete` attribute is only applicable to the
 915	// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
 916	// operation.
 917	// The `delete` attribute corresponds to the `--delete` parameter of the
 918	// [delete-objects operation within the S3
 919	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).
 920	AWSS3DeleteKey = attribute.Key("aws.s3.delete")
 921
 922	// AWSS3KeyKey is the attribute Key conforming to the "aws.s3.key" semantic
 923	// conventions. It represents the S3 object key the request refers to.
 924	// Corresponds to the `--key` parameter of the [S3
 925	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
 926	// operations.
 927	//
 928	// Type: string
 929	// RequirementLevel: Optional
 930	// Stability: experimental
 931	// Examples: 'someFile.yml'
 932	// Note: The `key` attribute is applicable to all object-related S3
 933	// operations, i.e. that require the object key as a mandatory parameter.
 934	// This applies in particular to the following operations:
 935	//
 936	// -
 937	// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
 938	// -
 939	// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
 940	// -
 941	// [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)
 942	// -
 943	// [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)
 944	// -
 945	// [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)
 946	// -
 947	// [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)
 948	// -
 949	// [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)
 950	// -
 951	// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
 952	// -
 953	// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
 954	// -
 955	// [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)
 956	// -
 957	// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
 958	// -
 959	// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
 960	// -
 961	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
 962	AWSS3KeyKey = attribute.Key("aws.s3.key")
 963
 964	// AWSS3PartNumberKey is the attribute Key conforming to the
 965	// "aws.s3.part_number" semantic conventions. It represents the part number
 966	// of the part being uploaded in a multipart-upload operation. This is a
 967	// positive integer between 1 and 10,000.
 968	//
 969	// Type: int
 970	// RequirementLevel: Optional
 971	// Stability: experimental
 972	// Examples: 3456
 973	// Note: The `part_number` attribute is only applicable to the
 974	// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
 975	// and
 976	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
 977	// operations.
 978	// The `part_number` attribute corresponds to the `--part-number` parameter
 979	// of the
 980	// [upload-part operation within the S3
 981	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
 982	AWSS3PartNumberKey = attribute.Key("aws.s3.part_number")
 983
 984	// AWSS3UploadIDKey is the attribute Key conforming to the
 985	// "aws.s3.upload_id" semantic conventions. It represents the upload ID
 986	// that identifies the multipart upload.
 987	//
 988	// Type: string
 989	// RequirementLevel: Optional
 990	// Stability: experimental
 991	// Examples: 'dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ'
 992	// Note: The `upload_id` attribute applies to S3 multipart-upload
 993	// operations and corresponds to the `--upload-id` parameter
 994	// of the [S3
 995	// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
 996	// multipart operations.
 997	// This applies in particular to the following operations:
 998	//
 999	// -
1000	// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
1001	// -
1002	// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
1003	// -
1004	// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
1005	// -
1006	// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
1007	// -
1008	// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
1009	AWSS3UploadIDKey = attribute.Key("aws.s3.upload_id")
1010)
1011
1012// AWSS3Bucket returns an attribute KeyValue conforming to the
1013// "aws.s3.bucket" semantic conventions. It represents the S3 bucket name the
1014// request refers to. Corresponds to the `--bucket` parameter of the [S3
1015// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
1016// operations.
1017func AWSS3Bucket(val string) attribute.KeyValue {
1018	return AWSS3BucketKey.String(val)
1019}
1020
1021// AWSS3CopySource returns an attribute KeyValue conforming to the
1022// "aws.s3.copy_source" semantic conventions. It represents the source object
1023// (in the form `bucket`/`key`) for the copy operation.
1024func AWSS3CopySource(val string) attribute.KeyValue {
1025	return AWSS3CopySourceKey.String(val)
1026}
1027
1028// AWSS3Delete returns an attribute KeyValue conforming to the
1029// "aws.s3.delete" semantic conventions. It represents the delete request
1030// container that specifies the objects to be deleted.
1031func AWSS3Delete(val string) attribute.KeyValue {
1032	return AWSS3DeleteKey.String(val)
1033}
1034
1035// AWSS3Key returns an attribute KeyValue conforming to the "aws.s3.key"
1036// semantic conventions. It represents the S3 object key the request refers to.
1037// Corresponds to the `--key` parameter of the [S3
1038// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
1039// operations.
1040func AWSS3Key(val string) attribute.KeyValue {
1041	return AWSS3KeyKey.String(val)
1042}
1043
1044// AWSS3PartNumber returns an attribute KeyValue conforming to the
1045// "aws.s3.part_number" semantic conventions. It represents the part number of
1046// the part being uploaded in a multipart-upload operation. This is a positive
1047// integer between 1 and 10,000.
1048func AWSS3PartNumber(val int) attribute.KeyValue {
1049	return AWSS3PartNumberKey.Int(val)
1050}
1051
1052// AWSS3UploadID returns an attribute KeyValue conforming to the
1053// "aws.s3.upload_id" semantic conventions. It represents the upload ID that
1054// identifies the multipart upload.
1055func AWSS3UploadID(val string) attribute.KeyValue {
1056	return AWSS3UploadIDKey.String(val)
1057}
1058
1059// The web browser attributes
1060const (
1061	// BrowserBrandsKey is the attribute Key conforming to the "browser.brands"
1062	// semantic conventions. It represents the array of brand name and version
1063	// separated by a space
1064	//
1065	// Type: string[]
1066	// RequirementLevel: Optional
1067	// Stability: experimental
1068	// Examples: ' Not A;Brand 99', 'Chromium 99', 'Chrome 99'
1069	// Note: This value is intended to be taken from the [UA client hints
1070	// API](https://wicg.github.io/ua-client-hints/#interface)
1071	// (`navigator.userAgentData.brands`).
1072	BrowserBrandsKey = attribute.Key("browser.brands")
1073
1074	// BrowserLanguageKey is the attribute Key conforming to the
1075	// "browser.language" semantic conventions. It represents the preferred
1076	// language of the user using the browser
1077	//
1078	// Type: string
1079	// RequirementLevel: Optional
1080	// Stability: experimental
1081	// Examples: 'en', 'en-US', 'fr', 'fr-FR'
1082	// Note: This value is intended to be taken from the Navigator API
1083	// `navigator.language`.
1084	BrowserLanguageKey = attribute.Key("browser.language")
1085
1086	// BrowserMobileKey is the attribute Key conforming to the "browser.mobile"
1087	// semantic conventions. It represents a boolean that is true if the
1088	// browser is running on a mobile device
1089	//
1090	// Type: boolean
1091	// RequirementLevel: Optional
1092	// Stability: experimental
1093	// Note: This value is intended to be taken from the [UA client hints
1094	// API](https://wicg.github.io/ua-client-hints/#interface)
1095	// (`navigator.userAgentData.mobile`). If unavailable, this attribute
1096	// SHOULD be left unset.
1097	BrowserMobileKey = attribute.Key("browser.mobile")
1098
1099	// BrowserPlatformKey is the attribute Key conforming to the
1100	// "browser.platform" semantic conventions. It represents the platform on
1101	// which the browser is running
1102	//
1103	// Type: string
1104	// RequirementLevel: Optional
1105	// Stability: experimental
1106	// Examples: 'Windows', 'macOS', 'Android'
1107	// Note: This value is intended to be taken from the [UA client hints
1108	// API](https://wicg.github.io/ua-client-hints/#interface)
1109	// (`navigator.userAgentData.platform`). If unavailable, the legacy
1110	// `navigator.platform` API SHOULD NOT be used instead and this attribute
1111	// SHOULD be left unset in order for the values to be consistent.
1112	// The list of possible values is defined in the [W3C User-Agent Client
1113	// Hints
1114	// specification](https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform).
1115	// Note that some (but not all) of these values can overlap with values in
1116	// the [`os.type` and `os.name` attributes](./os.md). However, for
1117	// consistency, the values in the `browser.platform` attribute should
1118	// capture the exact value that the user agent provides.
1119	BrowserPlatformKey = attribute.Key("browser.platform")
1120)
1121
1122// BrowserBrands returns an attribute KeyValue conforming to the
1123// "browser.brands" semantic conventions. It represents the array of brand name
1124// and version separated by a space
1125func BrowserBrands(val ...string) attribute.KeyValue {
1126	return BrowserBrandsKey.StringSlice(val)
1127}
1128
1129// BrowserLanguage returns an attribute KeyValue conforming to the
1130// "browser.language" semantic conventions. It represents the preferred
1131// language of the user using the browser
1132func BrowserLanguage(val string) attribute.KeyValue {
1133	return BrowserLanguageKey.String(val)
1134}
1135
1136// BrowserMobile returns an attribute KeyValue conforming to the
1137// "browser.mobile" semantic conventions. It represents a boolean that is true
1138// if the browser is running on a mobile device
1139func BrowserMobile(val bool) attribute.KeyValue {
1140	return BrowserMobileKey.Bool(val)
1141}
1142
1143// BrowserPlatform returns an attribute KeyValue conforming to the
1144// "browser.platform" semantic conventions. It represents the platform on which
1145// the browser is running
1146func BrowserPlatform(val string) attribute.KeyValue {
1147	return BrowserPlatformKey.String(val)
1148}
1149
1150// These attributes may be used to describe the client in a connection-based
1151// network interaction where there is one side that initiates the connection
1152// (the client is the side that initiates the connection). This covers all TCP
1153// network interactions since TCP is connection-based and one side initiates
1154// the connection (an exception is made for peer-to-peer communication over TCP
1155// where the "user-facing" surface of the protocol / API doesn't expose a clear
1156// notion of client and server). This also covers UDP network interactions
1157// where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.
1158const (
1159	// ClientAddressKey is the attribute Key conforming to the "client.address"
1160	// semantic conventions. It represents the client address - domain name if
1161	// available without reverse DNS lookup; otherwise, IP address or Unix
1162	// domain socket name.
1163	//
1164	// Type: string
1165	// RequirementLevel: Optional
1166	// Stability: stable
1167	// Examples: 'client.example.com', '10.1.2.80', '/tmp/my.sock'
1168	// Note: When observed from the server side, and when communicating through
1169	// an intermediary, `client.address` SHOULD represent the client address
1170	// behind any intermediaries,  for example proxies, if it's available.
1171	ClientAddressKey = attribute.Key("client.address")
1172
1173	// ClientPortKey is the attribute Key conforming to the "client.port"
1174	// semantic conventions. It represents the client port number.
1175	//
1176	// Type: int
1177	// RequirementLevel: Optional
1178	// Stability: stable
1179	// Examples: 65123
1180	// Note: When observed from the server side, and when communicating through
1181	// an intermediary, `client.port` SHOULD represent the client port behind
1182	// any intermediaries,  for example proxies, if it's available.
1183	ClientPortKey = attribute.Key("client.port")
1184)
1185
1186// ClientAddress returns an attribute KeyValue conforming to the
1187// "client.address" semantic conventions. It represents the client address -
1188// domain name if available without reverse DNS lookup; otherwise, IP address
1189// or Unix domain socket name.
1190func ClientAddress(val string) attribute.KeyValue {
1191	return ClientAddressKey.String(val)
1192}
1193
1194// ClientPort returns an attribute KeyValue conforming to the "client.port"
1195// semantic conventions. It represents the client port number.
1196func ClientPort(val int) attribute.KeyValue {
1197	return ClientPortKey.Int(val)
1198}
1199
1200// A cloud environment (e.g. GCP, Azure, AWS).
1201const (
1202	// CloudAccountIDKey is the attribute Key conforming to the
1203	// "cloud.account.id" semantic conventions. It represents the cloud account
1204	// ID the resource is assigned to.
1205	//
1206	// Type: string
1207	// RequirementLevel: Optional
1208	// Stability: experimental
1209	// Examples: '111111111111', 'opentelemetry'
1210	CloudAccountIDKey = attribute.Key("cloud.account.id")
1211
1212	// CloudAvailabilityZoneKey is the attribute Key conforming to the
1213	// "cloud.availability_zone" semantic conventions. It represents the cloud
1214	// regions often have multiple, isolated locations known as zones to
1215	// increase availability. Availability zone represents the zone where the
1216	// resource is running.
1217	//
1218	// Type: string
1219	// RequirementLevel: Optional
1220	// Stability: experimental
1221	// Examples: 'us-east-1c'
1222	// Note: Availability zones are called "zones" on Alibaba Cloud and Google
1223	// Cloud.
1224	CloudAvailabilityZoneKey = attribute.Key("cloud.availability_zone")
1225
1226	// CloudPlatformKey is the attribute Key conforming to the "cloud.platform"
1227	// semantic conventions. It represents the cloud platform in use.
1228	//
1229	// Type: Enum
1230	// RequirementLevel: Optional
1231	// Stability: experimental
1232	// Note: The prefix of the service SHOULD match the one specified in
1233	// `cloud.provider`.
1234	CloudPlatformKey = attribute.Key("cloud.platform")
1235
1236	// CloudProviderKey is the attribute Key conforming to the "cloud.provider"
1237	// semantic conventions. It represents the name of the cloud provider.
1238	//
1239	// Type: Enum
1240	// RequirementLevel: Optional
1241	// Stability: experimental
1242	CloudProviderKey = attribute.Key("cloud.provider")
1243
1244	// CloudRegionKey is the attribute Key conforming to the "cloud.region"
1245	// semantic conventions. It represents the geographical region the resource
1246	// is running.
1247	//
1248	// Type: string
1249	// RequirementLevel: Optional
1250	// Stability: experimental
1251	// Examples: 'us-central1', 'us-east-1'
1252	// Note: Refer to your provider's docs to see the available regions, for
1253	// example [Alibaba Cloud
1254	// regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS
1255	// regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/),
1256	// [Azure
1257	// regions](https://azure.microsoft.com/global-infrastructure/geographies/),
1258	// [Google Cloud regions](https://cloud.google.com/about/locations), or
1259	// [Tencent Cloud
1260	// regions](https://www.tencentcloud.com/document/product/213/6091).
1261	CloudRegionKey = attribute.Key("cloud.region")
1262
1263	// CloudResourceIDKey is the attribute Key conforming to the
1264	// "cloud.resource_id" semantic conventions. It represents the cloud
1265	// provider-specific native identifier of the monitored cloud resource
1266	// (e.g. an
1267	// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
1268	// on AWS, a [fully qualified resource
1269	// ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id)
1270	// on Azure, a [full resource
1271	// name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
1272	// on GCP)
1273	//
1274	// Type: string
1275	// RequirementLevel: Optional
1276	// Stability: experimental
1277	// Examples: 'arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function',
1278	// '//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID',
1279	// '/subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>'
1280	// Note: On some cloud providers, it may not be possible to determine the
1281	// full ID at startup,
1282	// so it may be necessary to set `cloud.resource_id` as a span attribute
1283	// instead.
1284	//
1285	// The exact value to use for `cloud.resource_id` depends on the cloud
1286	// provider.
1287	// The following well-known definitions MUST be used if you set this
1288	// attribute and they apply:
1289	//
1290	// * **AWS Lambda:** The function
1291	// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
1292	//   Take care not to use the "invoked ARN" directly but replace any
1293	//   [alias
1294	// suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
1295	//   with the resolved function version, as the same runtime instance may
1296	// be invokable with
1297	//   multiple different aliases.
1298	// * **GCP:** The [URI of the
1299	// resource](https://cloud.google.com/iam/docs/full-resource-names)
1300	// * **Azure:** The [Fully Qualified Resource
1301	// ID](https://docs.microsoft.com/rest/api/resources/resources/get-by-id)
1302	// of the invoked function,
1303	//   *not* the function app, having the form
1304	// `/subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>`.
1305	//   This means that a span attribute MUST be used, as an Azure function
1306	// app can host multiple functions that would usually share
1307	//   a TracerProvider.
1308	CloudResourceIDKey = attribute.Key("cloud.resource_id")
1309)
1310
1311var (
1312	// Alibaba Cloud Elastic Compute Service
1313	CloudPlatformAlibabaCloudECS = CloudPlatformKey.String("alibaba_cloud_ecs")
1314	// Alibaba Cloud Function Compute
1315	CloudPlatformAlibabaCloudFc = CloudPlatformKey.String("alibaba_cloud_fc")
1316	// Red Hat OpenShift on Alibaba Cloud
1317	CloudPlatformAlibabaCloudOpenshift = CloudPlatformKey.String("alibaba_cloud_openshift")
1318	// AWS Elastic Compute Cloud
1319	CloudPlatformAWSEC2 = CloudPlatformKey.String("aws_ec2")
1320	// AWS Elastic Container Service
1321	CloudPlatformAWSECS = CloudPlatformKey.String("aws_ecs")
1322	// AWS Elastic Kubernetes Service
1323	CloudPlatformAWSEKS = CloudPlatformKey.String("aws_eks")
1324	// AWS Lambda
1325	CloudPlatformAWSLambda = CloudPlatformKey.String("aws_lambda")
1326	// AWS Elastic Beanstalk
1327	CloudPlatformAWSElasticBeanstalk = CloudPlatformKey.String("aws_elastic_beanstalk")
1328	// AWS App Runner
1329	CloudPlatformAWSAppRunner = CloudPlatformKey.String("aws_app_runner")
1330	// Red Hat OpenShift on AWS (ROSA)
1331	CloudPlatformAWSOpenshift = CloudPlatformKey.String("aws_openshift")
1332	// Azure Virtual Machines
1333	CloudPlatformAzureVM = CloudPlatformKey.String("azure_vm")
1334	// Azure Container Apps
1335	CloudPlatformAzureContainerApps = CloudPlatformKey.String("azure_container_apps")
1336	// Azure Container Instances
1337	CloudPlatformAzureContainerInstances = CloudPlatformKey.String("azure_container_instances")
1338	// Azure Kubernetes Service
1339	CloudPlatformAzureAKS = CloudPlatformKey.String("azure_aks")
1340	// Azure Functions
1341	CloudPlatformAzureFunctions = CloudPlatformKey.String("azure_functions")
1342	// Azure App Service
1343	CloudPlatformAzureAppService = CloudPlatformKey.String("azure_app_service")
1344	// Azure Red Hat OpenShift
1345	CloudPlatformAzureOpenshift = CloudPlatformKey.String("azure_openshift")
1346	// Google Bare Metal Solution (BMS)
1347	CloudPlatformGCPBareMetalSolution = CloudPlatformKey.String("gcp_bare_metal_solution")
1348	// Google Cloud Compute Engine (GCE)
1349	CloudPlatformGCPComputeEngine = CloudPlatformKey.String("gcp_compute_engine")
1350	// Google Cloud Run
1351	CloudPlatformGCPCloudRun = CloudPlatformKey.String("gcp_cloud_run")
1352	// Google Cloud Kubernetes Engine (GKE)
1353	CloudPlatformGCPKubernetesEngine = CloudPlatformKey.String("gcp_kubernetes_engine")
1354	// Google Cloud Functions (GCF)
1355	CloudPlatformGCPCloudFunctions = CloudPlatformKey.String("gcp_cloud_functions")
1356	// Google Cloud App Engine (GAE)
1357	CloudPlatformGCPAppEngine = CloudPlatformKey.String("gcp_app_engine")
1358	// Red Hat OpenShift on Google Cloud
1359	CloudPlatformGCPOpenshift = CloudPlatformKey.String("gcp_openshift")
1360	// Red Hat OpenShift on IBM Cloud
1361	CloudPlatformIbmCloudOpenshift = CloudPlatformKey.String("ibm_cloud_openshift")
1362	// Tencent Cloud Cloud Virtual Machine (CVM)
1363	CloudPlatformTencentCloudCvm = CloudPlatformKey.String("tencent_cloud_cvm")
1364	// Tencent Cloud Elastic Kubernetes Service (EKS)
1365	CloudPlatformTencentCloudEKS = CloudPlatformKey.String("tencent_cloud_eks")
1366	// Tencent Cloud Serverless Cloud Function (SCF)
1367	CloudPlatformTencentCloudScf = CloudPlatformKey.String("tencent_cloud_scf")
1368)
1369
1370var (
1371	// Alibaba Cloud
1372	CloudProviderAlibabaCloud = CloudProviderKey.String("alibaba_cloud")
1373	// Amazon Web Services
1374	CloudProviderAWS = CloudProviderKey.String("aws")
1375	// Microsoft Azure
1376	CloudProviderAzure = CloudProviderKey.String("azure")
1377	// Google Cloud Platform
1378	CloudProviderGCP = CloudProviderKey.String("gcp")
1379	// Heroku Platform as a Service
1380	CloudProviderHeroku = CloudProviderKey.String("heroku")
1381	// IBM Cloud
1382	CloudProviderIbmCloud = CloudProviderKey.String("ibm_cloud")
1383	// Tencent Cloud
1384	CloudProviderTencentCloud = CloudProviderKey.String("tencent_cloud")
1385)
1386
1387// CloudAccountID returns an attribute KeyValue conforming to the
1388// "cloud.account.id" semantic conventions. It represents the cloud account ID
1389// the resource is assigned to.
1390func CloudAccountID(val string) attribute.KeyValue {
1391	return CloudAccountIDKey.String(val)
1392}
1393
1394// CloudAvailabilityZone returns an attribute KeyValue conforming to the
1395// "cloud.availability_zone" semantic conventions. It represents the cloud
1396// regions often have multiple, isolated locations known as zones to increase
1397// availability. Availability zone represents the zone where the resource is
1398// running.
1399func CloudAvailabilityZone(val string) attribute.KeyValue {
1400	return CloudAvailabilityZoneKey.String(val)
1401}
1402
1403// CloudRegion returns an attribute KeyValue conforming to the
1404// "cloud.region" semantic conventions. It represents the geographical region
1405// the resource is running.
1406func CloudRegion(val string) attribute.KeyValue {
1407	return CloudRegionKey.String(val)
1408}
1409
1410// CloudResourceID returns an attribute KeyValue conforming to the
1411// "cloud.resource_id" semantic conventions. It represents the cloud
1412// provider-specific native identifier of the monitored cloud resource (e.g. an
1413// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
1414// on AWS, a [fully qualified resource
1415// ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on
1416// Azure, a [full resource
1417// name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
1418// on GCP)
1419func CloudResourceID(val string) attribute.KeyValue {
1420	return CloudResourceIDKey.String(val)
1421}
1422
1423// Attributes for CloudEvents.
1424const (
1425	// CloudeventsEventIDKey is the attribute Key conforming to the
1426	// "cloudevents.event_id" semantic conventions. It represents the
1427	// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)
1428	// uniquely identifies the event.
1429	//
1430	// Type: string
1431	// RequirementLevel: Optional
1432	// Stability: experimental
1433	// Examples: '123e4567-e89b-12d3-a456-426614174000', '0001'
1434	CloudeventsEventIDKey = attribute.Key("cloudevents.event_id")
1435
1436	// CloudeventsEventSourceKey is the attribute Key conforming to the
1437	// "cloudevents.event_source" semantic conventions. It represents the
1438	// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)
1439	// identifies the context in which an event happened.
1440	//
1441	// Type: string
1442	// RequirementLevel: Optional
1443	// Stability: experimental
1444	// Examples: 'https://github.com/cloudevents',
1445	// '/cloudevents/spec/pull/123', 'my-service'
1446	CloudeventsEventSourceKey = attribute.Key("cloudevents.event_source")
1447
1448	// CloudeventsEventSpecVersionKey is the attribute Key conforming to the
1449	// "cloudevents.event_spec_version" semantic conventions. It represents the
1450	// [version of the CloudEvents
1451	// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)
1452	// which the event uses.
1453	//
1454	// Type: string
1455	// RequirementLevel: Optional
1456	// Stability: experimental
1457	// Examples: '1.0'
1458	CloudeventsEventSpecVersionKey = attribute.Key("cloudevents.event_spec_version")
1459
1460	// CloudeventsEventSubjectKey is the attribute Key conforming to the
1461	// "cloudevents.event_subject" semantic conventions. It represents the
1462	// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)
1463	// of the event in the context of the event producer (identified by
1464	// source).
1465	//
1466	// Type: string
1467	// RequirementLevel: Optional
1468	// Stability: experimental
1469	// Examples: 'mynewfile.jpg'
1470	CloudeventsEventSubjectKey = attribute.Key("cloudevents.event_subject")
1471
1472	// CloudeventsEventTypeKey is the attribute Key conforming to the
1473	// "cloudevents.event_type" semantic conventions. It represents the
1474	// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)
1475	// contains a value describing the type of event related to the originating
1476	// occurrence.
1477	//
1478	// Type: string
1479	// RequirementLevel: Optional
1480	// Stability: experimental
1481	// Examples: 'com.github.pull_request.opened',
1482	// 'com.example.object.deleted.v2'
1483	CloudeventsEventTypeKey = attribute.Key("cloudevents.event_type")
1484)
1485
1486// CloudeventsEventID returns an attribute KeyValue conforming to the
1487// "cloudevents.event_id" semantic conventions. It represents the
1488// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)
1489// uniquely identifies the event.
1490func CloudeventsEventID(val string) attribute.KeyValue {
1491	return CloudeventsEventIDKey.String(val)
1492}
1493
1494// CloudeventsEventSource returns an attribute KeyValue conforming to the
1495// "cloudevents.event_source" semantic conventions. It represents the
1496// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)
1497// identifies the context in which an event happened.
1498func CloudeventsEventSource(val string) attribute.KeyValue {
1499	return CloudeventsEventSourceKey.String(val)
1500}
1501
1502// CloudeventsEventSpecVersion returns an attribute KeyValue conforming to
1503// the "cloudevents.event_spec_version" semantic conventions. It represents the
1504// [version of the CloudEvents
1505// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)
1506// which the event uses.
1507func CloudeventsEventSpecVersion(val string) attribute.KeyValue {
1508	return CloudeventsEventSpecVersionKey.String(val)
1509}
1510
1511// CloudeventsEventSubject returns an attribute KeyValue conforming to the
1512// "cloudevents.event_subject" semantic conventions. It represents the
1513// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)
1514// of the event in the context of the event producer (identified by source).
1515func CloudeventsEventSubject(val string) attribute.KeyValue {
1516	return CloudeventsEventSubjectKey.String(val)
1517}
1518
1519// CloudeventsEventType returns an attribute KeyValue conforming to the
1520// "cloudevents.event_type" semantic conventions. It represents the
1521// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)
1522// contains a value describing the type of event related to the originating
1523// occurrence.
1524func CloudeventsEventType(val string) attribute.KeyValue {
1525	return CloudeventsEventTypeKey.String(val)
1526}
1527
1528// These attributes allow to report this unit of code and therefore to provide
1529// more context about the span.
1530const (
1531	// CodeColumnKey is the attribute Key conforming to the "code.column"
1532	// semantic conventions. It represents the column number in `code.filepath`
1533	// best representing the operation. It SHOULD point within the code unit
1534	// named in `code.function`.
1535	//
1536	// Type: int
1537	// RequirementLevel: Optional
1538	// Stability: experimental
1539	// Examples: 16
1540	CodeColumnKey = attribute.Key("code.column")
1541
1542	// CodeFilepathKey is the attribute Key conforming to the "code.filepath"
1543	// semantic conventions. It represents the source code file name that
1544	// identifies the code unit as uniquely as possible (preferably an absolute
1545	// file path).
1546	//
1547	// Type: string
1548	// RequirementLevel: Optional
1549	// Stability: experimental
1550	// Examples: '/usr/local/MyApplication/content_root/app/index.php'
1551	CodeFilepathKey = attribute.Key("code.filepath")
1552
1553	// CodeFunctionKey is the attribute Key conforming to the "code.function"
1554	// semantic conventions. It represents the method or function name, or
1555	// equivalent (usually rightmost part of the code unit's name).
1556	//
1557	// Type: string
1558	// RequirementLevel: Optional
1559	// Stability: experimental
1560	// Examples: 'serveRequest'
1561	CodeFunctionKey = attribute.Key("code.function")
1562
1563	// CodeLineNumberKey is the attribute Key conforming to the "code.lineno"
1564	// semantic conventions. It represents the line number in `code.filepath`
1565	// best representing the operation. It SHOULD point within the code unit
1566	// named in `code.function`.
1567	//
1568	// Type: int
1569	// RequirementLevel: Optional
1570	// Stability: experimental
1571	// Examples: 42
1572	CodeLineNumberKey = attribute.Key("code.lineno")
1573
1574	// CodeNamespaceKey is the attribute Key conforming to the "code.namespace"
1575	// semantic conventions. It represents the "namespace" within which
1576	// `code.function` is defined. Usually the qualified class or module name,
1577	// such that `code.namespace` + some separator + `code.function` form a
1578	// unique identifier for the code unit.
1579	//
1580	// Type: string
1581	// RequirementLevel: Optional
1582	// Stability: experimental
1583	// Examples: 'com.example.MyHTTPService'
1584	CodeNamespaceKey = attribute.Key("code.namespace")
1585
1586	// CodeStacktraceKey is the attribute Key conforming to the
1587	// "code.stacktrace" semantic conventions. It represents a stacktrace as a
1588	// string in the natural representation for the language runtime. The
1589	// representation is to be determined and documented by each language SIG.
1590	//
1591	// Type: string
1592	// RequirementLevel: Optional
1593	// Stability: experimental
1594	// Examples: 'at
1595	// com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at '
1596	//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\n at '
1597	//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'
1598	CodeStacktraceKey = attribute.Key("code.stacktrace")
1599)
1600
1601// CodeColumn returns an attribute KeyValue conforming to the "code.column"
1602// semantic conventions. It represents the column number in `code.filepath`
1603// best representing the operation. It SHOULD point within the code unit named
1604// in `code.function`.
1605func CodeColumn(val int) attribute.KeyValue {
1606	return CodeColumnKey.Int(val)
1607}
1608
1609// CodeFilepath returns an attribute KeyValue conforming to the
1610// "code.filepath" semantic conventions. It represents the source code file
1611// name that identifies the code unit as uniquely as possible (preferably an
1612// absolute file path).
1613func CodeFilepath(val string) attribute.KeyValue {
1614	return CodeFilepathKey.String(val)
1615}
1616
1617// CodeFunction returns an attribute KeyValue conforming to the
1618// "code.function" semantic conventions. It represents the method or function
1619// name, or equivalent (usually rightmost part of the code unit's name).
1620func CodeFunction(val string) attribute.KeyValue {
1621	return CodeFunctionKey.String(val)
1622}
1623
1624// CodeLineNumber returns an attribute KeyValue conforming to the "code.lineno"
1625// semantic conventions. It represents the line number in `code.filepath` best
1626// representing the operation. It SHOULD point within the code unit named in
1627// `code.function`.
1628func CodeLineNumber(val int) attribute.KeyValue {
1629	return CodeLineNumberKey.Int(val)
1630}
1631
1632// CodeNamespace returns an attribute KeyValue conforming to the
1633// "code.namespace" semantic conventions. It represents the "namespace" within
1634// which `code.function` is defined. Usually the qualified class or module
1635// name, such that `code.namespace` + some separator + `code.function` form a
1636// unique identifier for the code unit.
1637func CodeNamespace(val string) attribute.KeyValue {
1638	return CodeNamespaceKey.String(val)
1639}
1640
1641// CodeStacktrace returns an attribute KeyValue conforming to the
1642// "code.stacktrace" semantic conventions. It represents a stacktrace as a
1643// string in the natural representation for the language runtime. The
1644// representation is to be determined and documented by each language SIG.
1645func CodeStacktrace(val string) attribute.KeyValue {
1646	return CodeStacktraceKey.String(val)
1647}
1648
1649// A container instance.
1650const (
1651	// ContainerCommandKey is the attribute Key conforming to the
1652	// "container.command" semantic conventions. It represents the command used
1653	// to run the container (i.e. the command name).
1654	//
1655	// Type: string
1656	// RequirementLevel: Optional
1657	// Stability: experimental
1658	// Examples: 'otelcontribcol'
1659	// Note: If using embedded credentials or sensitive data, it is recommended
1660	// to remove them to prevent potential leakage.
1661	ContainerCommandKey = attribute.Key("container.command")
1662
1663	// ContainerCommandArgsKey is the attribute Key conforming to the
1664	// "container.command_args" semantic conventions. It represents the all the
1665	// command arguments (including the command/executable itself) run by the
1666	// container. [2]
1667	//
1668	// Type: string[]
1669	// RequirementLevel: Optional
1670	// Stability: experimental
1671	// Examples: 'otelcontribcol, --config, config.yaml'
1672	ContainerCommandArgsKey = attribute.Key("container.command_args")
1673
1674	// ContainerCommandLineKey is the attribute Key conforming to the
1675	// "container.command_line" semantic conventions. It represents the full
1676	// command run by the container as a single string representing the full
1677	// command. [2]
1678	//
1679	// Type: string
1680	// RequirementLevel: Optional
1681	// Stability: experimental
1682	// Examples: 'otelcontribcol --config config.yaml'
1683	ContainerCommandLineKey = attribute.Key("container.command_line")
1684
1685	// ContainerCPUStateKey is the attribute Key conforming to the
1686	// "container.cpu.state" semantic conventions. It represents the CPU state
1687	// for this data point.
1688	//
1689	// Type: Enum
1690	// RequirementLevel: Optional
1691	// Stability: experimental
1692	// Examples: 'user', 'kernel'
1693	ContainerCPUStateKey = attribute.Key("container.cpu.state")
1694
1695	// ContainerIDKey is the attribute Key conforming to the "container.id"
1696	// semantic conventions. It represents the container ID. Usually a UUID, as
1697	// for example used to [identify Docker
1698	// containers](https://docs.docker.com/engine/reference/run/#container-identification).
1699	// The UUID might be abbreviated.
1700	//
1701	// Type: string
1702	// RequirementLevel: Optional
1703	// Stability: experimental
1704	// Examples: 'a3bf90e006b2'
1705	ContainerIDKey = attribute.Key("container.id")
1706
1707	// ContainerImageIDKey is the attribute Key conforming to the
1708	// "container.image.id" semantic conventions. It represents the runtime
1709	// specific image identifier. Usually a hash algorithm followed by a UUID.
1710	//
1711	// Type: string
1712	// RequirementLevel: Optional
1713	// Stability: experimental
1714	// Examples:
1715	// 'sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f'
1716	// Note: Docker defines a sha256 of the image id; `container.image.id`
1717	// corresponds to the `Image` field from the Docker container inspect
1718	// [API](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect)
1719	// endpoint.
1720	// K8S defines a link to the container registry repository with digest
1721	// `"imageID": "registry.azurecr.io
1722	// /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`.
1723	// The ID is assigned by the container runtime and can vary in different
1724	// environments. Consider using `oci.manifest.digest` if it is important to
1725	// identify the same image in different environments/runtimes.
1726	ContainerImageIDKey = attribute.Key("container.image.id")
1727
1728	// ContainerImageNameKey is the attribute Key conforming to the
1729	// "container.image.name" semantic conventions. It represents the name of
1730	// the image the container was built on.
1731	//
1732	// Type: string
1733	// RequirementLevel: Optional
1734	// Stability: experimental
1735	// Examples: 'gcr.io/opentelemetry/operator'
1736	ContainerImageNameKey = attribute.Key("container.image.name")
1737
1738	// ContainerImageRepoDigestsKey is the attribute Key conforming to the
1739	// "container.image.repo_digests" semantic conventions. It represents the
1740	// repo digests of the container image as provided by the container
1741	// runtime.
1742	//
1743	// Type: string[]
1744	// RequirementLevel: Optional
1745	// Stability: experimental
1746	// Examples:
1747	// 'example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb',
1748	// 'internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578'
1749	// Note:
1750	// [Docker](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect)
1751	// and
1752	// [CRI](https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238)
1753	// report those under the `RepoDigests` field.
1754	ContainerImageRepoDigestsKey = attribute.Key("container.image.repo_digests")
1755
1756	// ContainerImageTagsKey is the attribute Key conforming to the
1757	// "container.image.tags" semantic conventions. It represents the container
1758	// image tags. An example can be found in [Docker Image
1759	// Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect).
1760	// Should be only the `<tag>` section of the full name for example from
1761	// `registry.example.com/my-org/my-image:<tag>`.
1762	//
1763	// Type: string[]
1764	// RequirementLevel: Optional
1765	// Stability: experimental
1766	// Examples: 'v1.27.1', '3.5.7-0'
1767	ContainerImageTagsKey = attribute.Key("container.image.tags")
1768
1769	// ContainerNameKey is the attribute Key conforming to the "container.name"
1770	// semantic conventions. It represents the container name used by container
1771	// runtime.
1772	//
1773	// Type: string
1774	// RequirementLevel: Optional
1775	// Stability: experimental
1776	// Examples: 'opentelemetry-autoconf'
1777	ContainerNameKey = attribute.Key("container.name")
1778
1779	// ContainerRuntimeKey is the attribute Key conforming to the
1780	// "container.runtime" semantic conventions. It represents the container
1781	// runtime managing this container.
1782	//
1783	// Type: string
1784	// RequirementLevel: Optional
1785	// Stability: experimental
1786	// Examples: 'docker', 'containerd', 'rkt'
1787	ContainerRuntimeKey = attribute.Key("container.runtime")
1788)
1789
1790var (
1791	// When tasks of the cgroup are in user mode (Linux). When all container processes are in user mode (Windows)
1792	ContainerCPUStateUser = ContainerCPUStateKey.String("user")
1793	// When CPU is used by the system (host OS)
1794	ContainerCPUStateSystem = ContainerCPUStateKey.String("system")
1795	// When tasks of the cgroup are in kernel mode (Linux). When all container processes are in kernel mode (Windows)
1796	ContainerCPUStateKernel = ContainerCPUStateKey.String("kernel")
1797)
1798
1799// ContainerCommand returns an attribute KeyValue conforming to the
1800// "container.command" semantic conventions. It represents the command used to
1801// run the container (i.e. the command name).
1802func ContainerCommand(val string) attribute.KeyValue {
1803	return ContainerCommandKey.String(val)
1804}
1805
1806// ContainerCommandArgs returns an attribute KeyValue conforming to the
1807// "container.command_args" semantic conventions. It represents the all the
1808// command arguments (including the command/executable itself) run by the
1809// container. [2]
1810func ContainerCommandArgs(val ...string) attribute.KeyValue {
1811	return ContainerCommandArgsKey.StringSlice(val)
1812}
1813
1814// ContainerCommandLine returns an attribute KeyValue conforming to the
1815// "container.command_line" semantic conventions. It represents the full
1816// command run by the container as a single string representing the full
1817// command. [2]
1818func ContainerCommandLine(val string) attribute.KeyValue {
1819	return ContainerCommandLineKey.String(val)
1820}
1821
1822// ContainerID returns an attribute KeyValue conforming to the
1823// "container.id" semantic conventions. It represents the container ID. Usually
1824// a UUID, as for example used to [identify Docker
1825// containers](https://docs.docker.com/engine/reference/run/#container-identification).
1826// The UUID might be abbreviated.
1827func ContainerID(val string) attribute.KeyValue {
1828	return ContainerIDKey.String(val)
1829}
1830
1831// ContainerImageID returns an attribute KeyValue conforming to the
1832// "container.image.id" semantic conventions. It represents the runtime
1833// specific image identifier. Usually a hash algorithm followed by a UUID.
1834func ContainerImageID(val string) attribute.KeyValue {
1835	return ContainerImageIDKey.String(val)
1836}
1837
1838// ContainerImageName returns an attribute KeyValue conforming to the
1839// "container.image.name" semantic conventions. It represents the name of the
1840// image the container was built on.
1841func ContainerImageName(val string) attribute.KeyValue {
1842	return ContainerImageNameKey.String(val)
1843}
1844
1845// ContainerImageRepoDigests returns an attribute KeyValue conforming to the
1846// "container.image.repo_digests" semantic conventions. It represents the repo
1847// digests of the container image as provided by the container runtime.
1848func ContainerImageRepoDigests(val ...string) attribute.KeyValue {
1849	return ContainerImageRepoDigestsKey.StringSlice(val)
1850}
1851
1852// ContainerImageTags returns an attribute KeyValue conforming to the
1853// "container.image.tags" semantic conventions. It represents the container
1854// image tags. An example can be found in [Docker Image
1855// Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect).
1856// Should be only the `<tag>` section of the full name for example from
1857// `registry.example.com/my-org/my-image:<tag>`.
1858func ContainerImageTags(val ...string) attribute.KeyValue {
1859	return ContainerImageTagsKey.StringSlice(val)
1860}
1861
1862// ContainerName returns an attribute KeyValue conforming to the
1863// "container.name" semantic conventions. It represents the container name used
1864// by container runtime.
1865func ContainerName(val string) attribute.KeyValue {
1866	return ContainerNameKey.String(val)
1867}
1868
1869// ContainerRuntime returns an attribute KeyValue conforming to the
1870// "container.runtime" semantic conventions. It represents the container
1871// runtime managing this container.
1872func ContainerRuntime(val string) attribute.KeyValue {
1873	return ContainerRuntimeKey.String(val)
1874}
1875
1876// This group defines the attributes used to describe telemetry in the context
1877// of databases.
1878const (
1879	// DBClientConnectionsPoolNameKey is the attribute Key conforming to the
1880	// "db.client.connections.pool.name" semantic conventions. It represents
1881	// the name of the connection pool; unique within the instrumented
1882	// application. In case the connection pool implementation doesn't provide
1883	// a name, instrumentation should use a combination of `server.address` and
1884	// `server.port` attributes formatted as `server.address:server.port`.
1885	//
1886	// Type: string
1887	// RequirementLevel: Optional
1888	// Stability: experimental
1889	// Examples: 'myDataSource'
1890	DBClientConnectionsPoolNameKey = attribute.Key("db.client.connections.pool.name")
1891
1892	// DBClientConnectionsStateKey is the attribute Key conforming to the
1893	// "db.client.connections.state" semantic conventions. It represents the
1894	// state of a connection in the pool
1895	//
1896	// Type: Enum
1897	// RequirementLevel: Optional
1898	// Stability: experimental
1899	// Examples: 'idle'
1900	DBClientConnectionsStateKey = attribute.Key("db.client.connections.state")
1901
1902	// DBCollectionNameKey is the attribute Key conforming to the
1903	// "db.collection.name" semantic conventions. It represents the name of a
1904	// collection (table, container) within the database.
1905	//
1906	// Type: string
1907	// RequirementLevel: Optional
1908	// Stability: experimental
1909	// Examples: 'public.users', 'customers'
1910	// Note: If the collection name is parsed from the query, it SHOULD match
1911	// the value provided in the query and may be qualified with the schema and
1912	// database name.
1913	// It is RECOMMENDED to capture the value as provided by the application
1914	// without attempting to do any case normalization.
1915	DBCollectionNameKey = attribute.Key("db.collection.name")
1916
1917	// DBNamespaceKey is the attribute Key conforming to the "db.namespace"
1918	// semantic conventions. It represents the name of the database, fully
1919	// qualified within the server address and port.
1920	//
1921	// Type: string
1922	// RequirementLevel: Optional
1923	// Stability: experimental
1924	// Examples: 'customers', 'test.users'
1925	// Note: If a database system has multiple namespace components, they
1926	// SHOULD be concatenated (potentially using database system specific
1927	// conventions) from most general to most specific namespace component, and
1928	// more specific namespaces SHOULD NOT be captured without the more general
1929	// namespaces, to ensure that "startswith" queries for the more general
1930	// namespaces will be valid.
1931	// Semantic conventions for individual database systems SHOULD document
1932	// what `db.namespace` means in the context of that system.
1933	// It is RECOMMENDED to capture the value as provided by the application
1934	// without attempting to do any case normalization.
1935	DBNamespaceKey = attribute.Key("db.namespace")
1936
1937	// DBOperationNameKey is the attribute Key conforming to the
1938	// "db.operation.name" semantic conventions. It represents the name of the
1939	// operation or command being executed.
1940	//
1941	// Type: string
1942	// RequirementLevel: Optional
1943	// Stability: experimental
1944	// Examples: 'findAndModify', 'HMSET', 'SELECT'
1945	// Note: It is RECOMMENDED to capture the value as provided by the
1946	// application without attempting to do any case normalization.
1947	DBOperationNameKey = attribute.Key("db.operation.name")
1948
1949	// DBQueryTextKey is the attribute Key conforming to the "db.query.text"
1950	// semantic conventions. It represents the database query being executed.
1951	//
1952	// Type: string
1953	// RequirementLevel: Optional
1954	// Stability: experimental
1955	// Examples: 'SELECT * FROM wuser_table where username = ?', 'SET mykey
1956	// "WuValue"'
1957	DBQueryTextKey = attribute.Key("db.query.text")
1958
1959	// DBSystemKey is the attribute Key conforming to the "db.system" semantic
1960	// conventions. It represents the database management system (DBMS) product
1961	// as identified by the client instrumentation.
1962	//
1963	// Type: Enum
1964	// RequirementLevel: Optional
1965	// Stability: experimental
1966	// Note: The actual DBMS may differ from the one identified by the client.
1967	// For example, when using PostgreSQL client libraries to connect to a
1968	// CockroachDB, the `db.system` is set to `postgresql` based on the
1969	// instrumentation's best knowledge.
1970	DBSystemKey = attribute.Key("db.system")
1971)
1972
1973var (
1974	// idle
1975	DBClientConnectionsStateIdle = DBClientConnectionsStateKey.String("idle")
1976	// used
1977	DBClientConnectionsStateUsed = DBClientConnectionsStateKey.String("used")
1978)
1979
1980var (
1981	// Some other SQL database. Fallback only. See notes
1982	DBSystemOtherSQL = DBSystemKey.String("other_sql")
1983	// Microsoft SQL Server
1984	DBSystemMSSQL = DBSystemKey.String("mssql")
1985	// Microsoft SQL Server Compact
1986	DBSystemMssqlcompact = DBSystemKey.String("mssqlcompact")
1987	// MySQL
1988	DBSystemMySQL = DBSystemKey.String("mysql")
1989	// Oracle Database
1990	DBSystemOracle = DBSystemKey.String("oracle")
1991	// IBM DB2
1992	DBSystemDB2 = DBSystemKey.String("db2")
1993	// PostgreSQL
1994	DBSystemPostgreSQL = DBSystemKey.String("postgresql")
1995	// Amazon Redshift
1996	DBSystemRedshift = DBSystemKey.String("redshift")
1997	// Apache Hive
1998	DBSystemHive = DBSystemKey.String("hive")
1999	// Cloudscape
2000	DBSystemCloudscape = DBSystemKey.String("cloudscape")
2001	// HyperSQL DataBase
2002	DBSystemHSQLDB = DBSystemKey.String("hsqldb")
2003	// Progress Database
2004	DBSystemProgress = DBSystemKey.String("progress")
2005	// SAP MaxDB
2006	DBSystemMaxDB = DBSystemKey.String("maxdb")
2007	// SAP HANA
2008	DBSystemHanaDB = DBSystemKey.String("hanadb")
2009	// Ingres
2010	DBSystemIngres = DBSystemKey.String("ingres")
2011	// FirstSQL
2012	DBSystemFirstSQL = DBSystemKey.String("firstsql")
2013	// EnterpriseDB
2014	DBSystemEDB = DBSystemKey.String("edb")
2015	// InterSystems Caché
2016	DBSystemCache = DBSystemKey.String("cache")
2017	// Adabas (Adaptable Database System)
2018	DBSystemAdabas = DBSystemKey.String("adabas")
2019	// Firebird
2020	DBSystemFirebird = DBSystemKey.String("firebird")
2021	// Apache Derby
2022	DBSystemDerby = DBSystemKey.String("derby")
2023	// FileMaker
2024	DBSystemFilemaker = DBSystemKey.String("filemaker")
2025	// Informix
2026	DBSystemInformix = DBSystemKey.String("informix")
2027	// InstantDB
2028	DBSystemInstantDB = DBSystemKey.String("instantdb")
2029	// InterBase
2030	DBSystemInterbase = DBSystemKey.String("interbase")
2031	// MariaDB
2032	DBSystemMariaDB = DBSystemKey.String("mariadb")
2033	// Netezza
2034	DBSystemNetezza = DBSystemKey.String("netezza")
2035	// Pervasive PSQL
2036	DBSystemPervasive = DBSystemKey.String("pervasive")
2037	// PointBase
2038	DBSystemPointbase = DBSystemKey.String("pointbase")
2039	// SQLite
2040	DBSystemSqlite = DBSystemKey.String("sqlite")
2041	// Sybase
2042	DBSystemSybase = DBSystemKey.String("sybase")
2043	// Teradata
2044	DBSystemTeradata = DBSystemKey.String("teradata")
2045	// Vertica
2046	DBSystemVertica = DBSystemKey.String("vertica")
2047	// H2
2048	DBSystemH2 = DBSystemKey.String("h2")
2049	// ColdFusion IMQ
2050	DBSystemColdfusion = DBSystemKey.String("coldfusion")
2051	// Apache Cassandra
2052	DBSystemCassandra = DBSystemKey.String("cassandra")
2053	// Apache HBase
2054	DBSystemHBase = DBSystemKey.String("hbase")
2055	// MongoDB
2056	DBSystemMongoDB = DBSystemKey.String("mongodb")
2057	// Redis
2058	DBSystemRedis = DBSystemKey.String("redis")
2059	// Couchbase
2060	DBSystemCouchbase = DBSystemKey.String("couchbase")
2061	// CouchDB
2062	DBSystemCouchDB = DBSystemKey.String("couchdb")
2063	// Microsoft Azure Cosmos DB
2064	DBSystemCosmosDB = DBSystemKey.String("cosmosdb")
2065	// Amazon DynamoDB
2066	DBSystemDynamoDB = DBSystemKey.String("dynamodb")
2067	// Neo4j
2068	DBSystemNeo4j = DBSystemKey.String("neo4j")
2069	// Apache Geode
2070	DBSystemGeode = DBSystemKey.String("geode")
2071	// Elasticsearch
2072	DBSystemElasticsearch = DBSystemKey.String("elasticsearch")
2073	// Memcached
2074	DBSystemMemcached = DBSystemKey.String("memcached")
2075	// CockroachDB
2076	DBSystemCockroachdb = DBSystemKey.String("cockroachdb")
2077	// OpenSearch
2078	DBSystemOpensearch = DBSystemKey.String("opensearch")
2079	// ClickHouse
2080	DBSystemClickhouse = DBSystemKey.String("clickhouse")
2081	// Cloud Spanner
2082	DBSystemSpanner = DBSystemKey.String("spanner")
2083	// Trino
2084	DBSystemTrino = DBSystemKey.String("trino")
2085)
2086
2087// DBClientConnectionsPoolName returns an attribute KeyValue conforming to
2088// the "db.client.connections.pool.name" semantic conventions. It represents
2089// the name of the connection pool; unique within the instrumented application.
2090// In case the connection pool implementation doesn't provide a name,
2091// instrumentation should use a combination of `server.address` and
2092// `server.port` attributes formatted as `server.address:server.port`.
2093func DBClientConnectionsPoolName(val string) attribute.KeyValue {
2094	return DBClientConnectionsPoolNameKey.String(val)
2095}
2096
2097// DBCollectionName returns an attribute KeyValue conforming to the
2098// "db.collection.name" semantic conventions. It represents the name of a
2099// collection (table, container) within the database.
2100func DBCollectionName(val string) attribute.KeyValue {
2101	return DBCollectionNameKey.String(val)
2102}
2103
2104// DBNamespace returns an attribute KeyValue conforming to the
2105// "db.namespace" semantic conventions. It represents the name of the database,
2106// fully qualified within the server address and port.
2107func DBNamespace(val string) attribute.KeyValue {
2108	return DBNamespaceKey.String(val)
2109}
2110
2111// DBOperationName returns an attribute KeyValue conforming to the
2112// "db.operation.name" semantic conventions. It represents the name of the
2113// operation or command being executed.
2114func DBOperationName(val string) attribute.KeyValue {
2115	return DBOperationNameKey.String(val)
2116}
2117
2118// DBQueryText returns an attribute KeyValue conforming to the
2119// "db.query.text" semantic conventions. It represents the database query being
2120// executed.
2121func DBQueryText(val string) attribute.KeyValue {
2122	return DBQueryTextKey.String(val)
2123}
2124
2125// This group defines attributes for Cassandra.
2126const (
2127	// DBCassandraConsistencyLevelKey is the attribute Key conforming to the
2128	// "db.cassandra.consistency_level" semantic conventions. It represents the
2129	// consistency level of the query. Based on consistency values from
2130	// [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).
2131	//
2132	// Type: Enum
2133	// RequirementLevel: Optional
2134	// Stability: experimental
2135	DBCassandraConsistencyLevelKey = attribute.Key("db.cassandra.consistency_level")
2136
2137	// DBCassandraCoordinatorDCKey is the attribute Key conforming to the
2138	// "db.cassandra.coordinator.dc" semantic conventions. It represents the
2139	// data center of the coordinating node for a query.
2140	//
2141	// Type: string
2142	// RequirementLevel: Optional
2143	// Stability: experimental
2144	// Examples: 'us-west-2'
2145	DBCassandraCoordinatorDCKey = attribute.Key("db.cassandra.coordinator.dc")
2146
2147	// DBCassandraCoordinatorIDKey is the attribute Key conforming to the
2148	// "db.cassandra.coordinator.id" semantic conventions. It represents the ID
2149	// of the coordinating node for a query.
2150	//
2151	// Type: string
2152	// RequirementLevel: Optional
2153	// Stability: experimental
2154	// Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af'
2155	DBCassandraCoordinatorIDKey = attribute.Key("db.cassandra.coordinator.id")
2156
2157	// DBCassandraIdempotenceKey is the attribute Key conforming to the
2158	// "db.cassandra.idempotence" semantic conventions. It represents the
2159	// whether or not the query is idempotent.
2160	//
2161	// Type: boolean
2162	// RequirementLevel: Optional
2163	// Stability: experimental
2164	DBCassandraIdempotenceKey = attribute.Key("db.cassandra.idempotence")
2165
2166	// DBCassandraPageSizeKey is the attribute Key conforming to the
2167	// "db.cassandra.page_size" semantic conventions. It represents the fetch
2168	// size used for paging, i.e. how many rows will be returned at once.
2169	//
2170	// Type: int
2171	// RequirementLevel: Optional
2172	// Stability: experimental
2173	// Examples: 5000
2174	DBCassandraPageSizeKey = attribute.Key("db.cassandra.page_size")
2175
2176	// DBCassandraSpeculativeExecutionCountKey is the attribute Key conforming
2177	// to the "db.cassandra.speculative_execution_count" semantic conventions.
2178	// It represents the number of times a query was speculatively executed.
2179	// Not set or `0` if the query was not executed speculatively.
2180	//
2181	// Type: int
2182	// RequirementLevel: Optional
2183	// Stability: experimental
2184	// Examples: 0, 2
2185	DBCassandraSpeculativeExecutionCountKey = attribute.Key("db.cassandra.speculative_execution_count")
2186)
2187
2188var (
2189	// all
2190	DBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String("all")
2191	// each_quorum
2192	DBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String("each_quorum")
2193	// quorum
2194	DBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String("quorum")
2195	// local_quorum
2196	DBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String("local_quorum")
2197	// one
2198	DBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String("one")
2199	// two
2200	DBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String("two")
2201	// three
2202	DBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String("three")
2203	// local_one
2204	DBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String("local_one")
2205	// any
2206	DBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String("any")
2207	// serial
2208	DBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String("serial")
2209	// local_serial
2210	DBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String("local_serial")
2211)
2212
2213// DBCassandraCoordinatorDC returns an attribute KeyValue conforming to the
2214// "db.cassandra.coordinator.dc" semantic conventions. It represents the data
2215// center of the coordinating node for a query.
2216func DBCassandraCoordinatorDC(val string) attribute.KeyValue {
2217	return DBCassandraCoordinatorDCKey.String(val)
2218}
2219
2220// DBCassandraCoordinatorID returns an attribute KeyValue conforming to the
2221// "db.cassandra.coordinator.id" semantic conventions. It represents the ID of
2222// the coordinating node for a query.
2223func DBCassandraCoordinatorID(val string) attribute.KeyValue {
2224	return DBCassandraCoordinatorIDKey.String(val)
2225}
2226
2227// DBCassandraIdempotence returns an attribute KeyValue conforming to the
2228// "db.cassandra.idempotence" semantic conventions. It represents the whether
2229// or not the query is idempotent.
2230func DBCassandraIdempotence(val bool) attribute.KeyValue {
2231	return DBCassandraIdempotenceKey.Bool(val)
2232}
2233
2234// DBCassandraPageSize returns an attribute KeyValue conforming to the
2235// "db.cassandra.page_size" semantic conventions. It represents the fetch size
2236// used for paging, i.e. how many rows will be returned at once.
2237func DBCassandraPageSize(val int) attribute.KeyValue {
2238	return DBCassandraPageSizeKey.Int(val)
2239}
2240
2241// DBCassandraSpeculativeExecutionCount returns an attribute KeyValue
2242// conforming to the "db.cassandra.speculative_execution_count" semantic
2243// conventions. It represents the number of times a query was speculatively
2244// executed. Not set or `0` if the query was not executed speculatively.
2245func DBCassandraSpeculativeExecutionCount(val int) attribute.KeyValue {
2246	return DBCassandraSpeculativeExecutionCountKey.Int(val)
2247}
2248
2249// This group defines attributes for Azure Cosmos DB.
2250const (
2251	// DBCosmosDBClientIDKey is the attribute Key conforming to the
2252	// "db.cosmosdb.client_id" semantic conventions. It represents the unique
2253	// Cosmos client instance id.
2254	//
2255	// Type: string
2256	// RequirementLevel: Optional
2257	// Stability: experimental
2258	// Examples: '3ba4827d-4422-483f-b59f-85b74211c11d'
2259	DBCosmosDBClientIDKey = attribute.Key("db.cosmosdb.client_id")
2260
2261	// DBCosmosDBConnectionModeKey is the attribute Key conforming to the
2262	// "db.cosmosdb.connection_mode" semantic conventions. It represents the
2263	// cosmos client connection mode.
2264	//
2265	// Type: Enum
2266	// RequirementLevel: Optional
2267	// Stability: experimental
2268	DBCosmosDBConnectionModeKey = attribute.Key("db.cosmosdb.connection_mode")
2269
2270	// DBCosmosDBOperationTypeKey is the attribute Key conforming to the
2271	// "db.cosmosdb.operation_type" semantic conventions. It represents the
2272	// cosmosDB Operation Type.
2273	//
2274	// Type: Enum
2275	// RequirementLevel: Optional
2276	// Stability: experimental
2277	DBCosmosDBOperationTypeKey = attribute.Key("db.cosmosdb.operation_type")
2278
2279	// DBCosmosDBRequestChargeKey is the attribute Key conforming to the
2280	// "db.cosmosdb.request_charge" semantic conventions. It represents the rU
2281	// consumed for that operation
2282	//
2283	// Type: double
2284	// RequirementLevel: Optional
2285	// Stability: experimental
2286	// Examples: 46.18, 1.0
2287	DBCosmosDBRequestChargeKey = attribute.Key("db.cosmosdb.request_charge")
2288
2289	// DBCosmosDBRequestContentLengthKey is the attribute Key conforming to the
2290	// "db.cosmosdb.request_content_length" semantic conventions. It represents
2291	// the request payload size in bytes
2292	//
2293	// Type: int
2294	// RequirementLevel: Optional
2295	// Stability: experimental
2296	DBCosmosDBRequestContentLengthKey = attribute.Key("db.cosmosdb.request_content_length")
2297
2298	// DBCosmosDBStatusCodeKey is the attribute Key conforming to the
2299	// "db.cosmosdb.status_code" semantic conventions. It represents the cosmos
2300	// DB status code.
2301	//
2302	// Type: int
2303	// RequirementLevel: Optional
2304	// Stability: experimental
2305	// Examples: 200, 201
2306	DBCosmosDBStatusCodeKey = attribute.Key("db.cosmosdb.status_code")
2307
2308	// DBCosmosDBSubStatusCodeKey is the attribute Key conforming to the
2309	// "db.cosmosdb.sub_status_code" semantic conventions. It represents the
2310	// cosmos DB sub status code.
2311	//
2312	// Type: int
2313	// RequirementLevel: Optional
2314	// Stability: experimental
2315	// Examples: 1000, 1002
2316	DBCosmosDBSubStatusCodeKey = attribute.Key("db.cosmosdb.sub_status_code")
2317)
2318
2319var (
2320	// Gateway (HTTP) connections mode
2321	DBCosmosDBConnectionModeGateway = DBCosmosDBConnectionModeKey.String("gateway")
2322	// Direct connection
2323	DBCosmosDBConnectionModeDirect = DBCosmosDBConnectionModeKey.String("direct")
2324)
2325
2326var (
2327	// invalid
2328	DBCosmosDBOperationTypeInvalid = DBCosmosDBOperationTypeKey.String("Invalid")
2329	// create
2330	DBCosmosDBOperationTypeCreate = DBCosmosDBOperationTypeKey.String("Create")
2331	// patch
2332	DBCosmosDBOperationTypePatch = DBCosmosDBOperationTypeKey.String("Patch")
2333	// read
2334	DBCosmosDBOperationTypeRead = DBCosmosDBOperationTypeKey.String("Read")
2335	// read_feed
2336	DBCosmosDBOperationTypeReadFeed = DBCosmosDBOperationTypeKey.String("ReadFeed")
2337	// delete
2338	DBCosmosDBOperationTypeDelete = DBCosmosDBOperationTypeKey.String("Delete")
2339	// replace
2340	DBCosmosDBOperationTypeReplace = DBCosmosDBOperationTypeKey.String("Replace")
2341	// execute
2342	DBCosmosDBOperationTypeExecute = DBCosmosDBOperationTypeKey.String("Execute")
2343	// query
2344	DBCosmosDBOperationTypeQuery = DBCosmosDBOperationTypeKey.String("Query")
2345	// head
2346	DBCosmosDBOperationTypeHead = DBCosmosDBOperationTypeKey.String("Head")
2347	// head_feed
2348	DBCosmosDBOperationTypeHeadFeed = DBCosmosDBOperationTypeKey.String("HeadFeed")
2349	// upsert
2350	DBCosmosDBOperationTypeUpsert = DBCosmosDBOperationTypeKey.String("Upsert")
2351	// batch
2352	DBCosmosDBOperationTypeBatch = DBCosmosDBOperationTypeKey.String("Batch")
2353	// query_plan
2354	DBCosmosDBOperationTypeQueryPlan = DBCosmosDBOperationTypeKey.String("QueryPlan")
2355	// execute_javascript
2356	DBCosmosDBOperationTypeExecuteJavascript = DBCosmosDBOperationTypeKey.String("ExecuteJavaScript")
2357)
2358
2359// DBCosmosDBClientID returns an attribute KeyValue conforming to the
2360// "db.cosmosdb.client_id" semantic conventions. It represents the unique
2361// Cosmos client instance id.
2362func DBCosmosDBClientID(val string) attribute.KeyValue {
2363	return DBCosmosDBClientIDKey.String(val)
2364}
2365
2366// DBCosmosDBRequestCharge returns an attribute KeyValue conforming to the
2367// "db.cosmosdb.request_charge" semantic conventions. It represents the rU
2368// consumed for that operation
2369func DBCosmosDBRequestCharge(val float64) attribute.KeyValue {
2370	return DBCosmosDBRequestChargeKey.Float64(val)
2371}
2372
2373// DBCosmosDBRequestContentLength returns an attribute KeyValue conforming
2374// to the "db.cosmosdb.request_content_length" semantic conventions. It
2375// represents the request payload size in bytes
2376func DBCosmosDBRequestContentLength(val int) attribute.KeyValue {
2377	return DBCosmosDBRequestContentLengthKey.Int(val)
2378}
2379
2380// DBCosmosDBStatusCode returns an attribute KeyValue conforming to the
2381// "db.cosmosdb.status_code" semantic conventions. It represents the cosmos DB
2382// status code.
2383func DBCosmosDBStatusCode(val int) attribute.KeyValue {
2384	return DBCosmosDBStatusCodeKey.Int(val)
2385}
2386
2387// DBCosmosDBSubStatusCode returns an attribute KeyValue conforming to the
2388// "db.cosmosdb.sub_status_code" semantic conventions. It represents the cosmos
2389// DB sub status code.
2390func DBCosmosDBSubStatusCode(val int) attribute.KeyValue {
2391	return DBCosmosDBSubStatusCodeKey.Int(val)
2392}
2393
2394// This group defines attributes for Elasticsearch.
2395const (
2396	// DBElasticsearchClusterNameKey is the attribute Key conforming to the
2397	// "db.elasticsearch.cluster.name" semantic conventions. It represents the
2398	// represents the identifier of an Elasticsearch cluster.
2399	//
2400	// Type: string
2401	// RequirementLevel: Optional
2402	// Stability: experimental
2403	// Examples: 'e9106fc68e3044f0b1475b04bf4ffd5f'
2404	DBElasticsearchClusterNameKey = attribute.Key("db.elasticsearch.cluster.name")
2405
2406	// DBElasticsearchNodeNameKey is the attribute Key conforming to the
2407	// "db.elasticsearch.node.name" semantic conventions. It represents the
2408	// represents the human-readable identifier of the node/instance to which a
2409	// request was routed.
2410	//
2411	// Type: string
2412	// RequirementLevel: Optional
2413	// Stability: experimental
2414	// Examples: 'instance-0000000001'
2415	DBElasticsearchNodeNameKey = attribute.Key("db.elasticsearch.node.name")
2416)
2417
2418// DBElasticsearchClusterName returns an attribute KeyValue conforming to
2419// the "db.elasticsearch.cluster.name" semantic conventions. It represents the
2420// represents the identifier of an Elasticsearch cluster.
2421func DBElasticsearchClusterName(val string) attribute.KeyValue {
2422	return DBElasticsearchClusterNameKey.String(val)
2423}
2424
2425// DBElasticsearchNodeName returns an attribute KeyValue conforming to the
2426// "db.elasticsearch.node.name" semantic conventions. It represents the
2427// represents the human-readable identifier of the node/instance to which a
2428// request was routed.
2429func DBElasticsearchNodeName(val string) attribute.KeyValue {
2430	return DBElasticsearchNodeNameKey.String(val)
2431}
2432
2433// Attributes for software deployments.
2434const (
2435	// DeploymentEnvironmentKey is the attribute Key conforming to the
2436	// "deployment.environment" semantic conventions. It represents the name of
2437	// the [deployment
2438	// environment](https://wikipedia.org/wiki/Deployment_environment) (aka
2439	// deployment tier).
2440	//
2441	// Type: string
2442	// RequirementLevel: Optional
2443	// Stability: experimental
2444	// Examples: 'staging', 'production'
2445	// Note: `deployment.environment` does not affect the uniqueness
2446	// constraints defined through
2447	// the `service.namespace`, `service.name` and `service.instance.id`
2448	// resource attributes.
2449	// This implies that resources carrying the following attribute
2450	// combinations MUST be
2451	// considered to be identifying the same service:
2452	//
2453	// * `service.name=frontend`, `deployment.environment=production`
2454	// * `service.name=frontend`, `deployment.environment=staging`.
2455	DeploymentEnvironmentKey = attribute.Key("deployment.environment")
2456)
2457
2458// DeploymentEnvironment returns an attribute KeyValue conforming to the
2459// "deployment.environment" semantic conventions. It represents the name of the
2460// [deployment environment](https://wikipedia.org/wiki/Deployment_environment)
2461// (aka deployment tier).
2462func DeploymentEnvironment(val string) attribute.KeyValue {
2463	return DeploymentEnvironmentKey.String(val)
2464}
2465
2466// Attributes that represents an occurrence of a lifecycle transition on the
2467// Android platform.
2468const (
2469	// AndroidStateKey is the attribute Key conforming to the "android.state"
2470	// semantic conventions. It represents the deprecated use the
2471	// `device.app.lifecycle` event definition including `android.state` as a
2472	// payload field instead.
2473	//
2474	// Type: Enum
2475	// RequirementLevel: Optional
2476	// Stability: experimental
2477	// Note: The Android lifecycle states are defined in [Activity lifecycle
2478	// callbacks](https://developer.android.com/guide/components/activities/activity-lifecycle#lc),
2479	// and from which the `OS identifiers` are derived.
2480	AndroidStateKey = attribute.Key("android.state")
2481)
2482
2483var (
2484	// Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time
2485	AndroidStateCreated = AndroidStateKey.String("created")
2486	// Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been called when the app was in the foreground state
2487	AndroidStateBackground = AndroidStateKey.String("background")
2488	// Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has been called when the app was in either the created or background states
2489	AndroidStateForeground = AndroidStateKey.String("foreground")
2490)
2491
2492// These attributes may be used to describe the receiver of a network
2493// exchange/packet. These should be used when there is no client/server
2494// relationship between the two sides, or when that relationship is unknown.
2495// This covers low-level network interactions (e.g. packet tracing) where you
2496// don't know if there was a connection or which side initiated it. This also
2497// covers unidirectional UDP flows and peer-to-peer communication where the
2498// "user-facing" surface of the protocol / API doesn't expose a clear notion of
2499// client and server.
2500const (
2501	// DestinationAddressKey is the attribute Key conforming to the
2502	// "destination.address" semantic conventions. It represents the
2503	// destination address - domain name if available without reverse DNS
2504	// lookup; otherwise, IP address or Unix domain socket name.
2505	//
2506	// Type: string
2507	// RequirementLevel: Optional
2508	// Stability: experimental
2509	// Examples: 'destination.example.com', '10.1.2.80', '/tmp/my.sock'
2510	// Note: When observed from the source side, and when communicating through
2511	// an intermediary, `destination.address` SHOULD represent the destination
2512	// address behind any intermediaries, for example proxies, if it's
2513	// available.
2514	DestinationAddressKey = attribute.Key("destination.address")
2515
2516	// DestinationPortKey is the attribute Key conforming to the
2517	// "destination.port" semantic conventions. It represents the destination
2518	// port number
2519	//
2520	// Type: int
2521	// RequirementLevel: Optional
2522	// Stability: experimental
2523	// Examples: 3389, 2888
2524	DestinationPortKey = attribute.Key("destination.port")
2525)
2526
2527// DestinationAddress returns an attribute KeyValue conforming to the
2528// "destination.address" semantic conventions. It represents the destination
2529// address - domain name if available without reverse DNS lookup; otherwise, IP
2530// address or Unix domain socket name.
2531func DestinationAddress(val string) attribute.KeyValue {
2532	return DestinationAddressKey.String(val)
2533}
2534
2535// DestinationPort returns an attribute KeyValue conforming to the
2536// "destination.port" semantic conventions. It represents the destination port
2537// number
2538func DestinationPort(val int) attribute.KeyValue {
2539	return DestinationPortKey.Int(val)
2540}
2541
2542// Describes device attributes.
2543const (
2544	// DeviceIDKey is the attribute Key conforming to the "device.id" semantic
2545	// conventions. It represents a unique identifier representing the device
2546	//
2547	// Type: string
2548	// RequirementLevel: Optional
2549	// Stability: experimental
2550	// Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092'
2551	// Note: The device identifier MUST only be defined using the values
2552	// outlined below. This value is not an advertising identifier and MUST NOT
2553	// be used as such. On iOS (Swift or Objective-C), this value MUST be equal
2554	// to the [vendor
2555	// identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor).
2556	// On Android (Java or Kotlin), this value MUST be equal to the Firebase
2557	// Installation ID or a globally unique UUID which is persisted across
2558	// sessions in your application. More information can be found
2559	// [here](https://developer.android.com/training/articles/user-data-ids) on
2560	// best practices and exact implementation details. Caution should be taken
2561	// when storing personal data or anything which can identify a user. GDPR
2562	// and data protection laws may apply, ensure you do your own due
2563	// diligence.
2564	DeviceIDKey = attribute.Key("device.id")
2565
2566	// DeviceManufacturerKey is the attribute Key conforming to the
2567	// "device.manufacturer" semantic conventions. It represents the name of
2568	// the device manufacturer
2569	//
2570	// Type: string
2571	// RequirementLevel: Optional
2572	// Stability: experimental
2573	// Examples: 'Apple', 'Samsung'
2574	// Note: The Android OS provides this field via
2575	// [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER).
2576	// iOS apps SHOULD hardcode the value `Apple`.
2577	DeviceManufacturerKey = attribute.Key("device.manufacturer")
2578
2579	// DeviceModelIdentifierKey is the attribute Key conforming to the
2580	// "device.model.identifier" semantic conventions. It represents the model
2581	// identifier for the device
2582	//
2583	// Type: string
2584	// RequirementLevel: Optional
2585	// Stability: experimental
2586	// Examples: 'iPhone3,4', 'SM-G920F'
2587	// Note: It's recommended this value represents a machine-readable version
2588	// of the model identifier rather than the market or consumer-friendly name
2589	// of the device.
2590	DeviceModelIdentifierKey = attribute.Key("device.model.identifier")
2591
2592	// DeviceModelNameKey is the attribute Key conforming to the
2593	// "device.model.name" semantic conventions. It represents the marketing
2594	// name for the device model
2595	//
2596	// Type: string
2597	// RequirementLevel: Optional
2598	// Stability: experimental
2599	// Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6'
2600	// Note: It's recommended this value represents a human-readable version of
2601	// the device model rather than a machine-readable alternative.
2602	DeviceModelNameKey = attribute.Key("device.model.name")
2603)
2604
2605// DeviceID returns an attribute KeyValue conforming to the "device.id"
2606// semantic conventions. It represents a unique identifier representing the
2607// device
2608func DeviceID(val string) attribute.KeyValue {
2609	return DeviceIDKey.String(val)
2610}
2611
2612// DeviceManufacturer returns an attribute KeyValue conforming to the
2613// "device.manufacturer" semantic conventions. It represents the name of the
2614// device manufacturer
2615func DeviceManufacturer(val string) attribute.KeyValue {
2616	return DeviceManufacturerKey.String(val)
2617}
2618
2619// DeviceModelIdentifier returns an attribute KeyValue conforming to the
2620// "device.model.identifier" semantic conventions. It represents the model
2621// identifier for the device
2622func DeviceModelIdentifier(val string) attribute.KeyValue {
2623	return DeviceModelIdentifierKey.String(val)
2624}
2625
2626// DeviceModelName returns an attribute KeyValue conforming to the
2627// "device.model.name" semantic conventions. It represents the marketing name
2628// for the device model
2629func DeviceModelName(val string) attribute.KeyValue {
2630	return DeviceModelNameKey.String(val)
2631}
2632
2633// These attributes may be used for any disk related operation.
2634const (
2635	// DiskIoDirectionKey is the attribute Key conforming to the
2636	// "disk.io.direction" semantic conventions. It represents the disk IO
2637	// operation direction.
2638	//
2639	// Type: Enum
2640	// RequirementLevel: Optional
2641	// Stability: experimental
2642	// Examples: 'read'
2643	DiskIoDirectionKey = attribute.Key("disk.io.direction")
2644)
2645
2646var (
2647	// read
2648	DiskIoDirectionRead = DiskIoDirectionKey.String("read")
2649	// write
2650	DiskIoDirectionWrite = DiskIoDirectionKey.String("write")
2651)
2652
2653// The shared attributes used to report a DNS query.
2654const (
2655	// DNSQuestionNameKey is the attribute Key conforming to the
2656	// "dns.question.name" semantic conventions. It represents the name being
2657	// queried.
2658	//
2659	// Type: string
2660	// RequirementLevel: Optional
2661	// Stability: experimental
2662	// Examples: 'www.example.com', 'opentelemetry.io'
2663	// Note: If the name field contains non-printable characters (below 32 or
2664	// above 126), those characters should be represented as escaped base 10
2665	// integers (\DDD). Back slashes and quotes should be escaped. Tabs,
2666	// carriage returns, and line feeds should be converted to \t, \r, and \n
2667	// respectively.
2668	DNSQuestionNameKey = attribute.Key("dns.question.name")
2669)
2670
2671// DNSQuestionName returns an attribute KeyValue conforming to the
2672// "dns.question.name" semantic conventions. It represents the name being
2673// queried.
2674func DNSQuestionName(val string) attribute.KeyValue {
2675	return DNSQuestionNameKey.String(val)
2676}
2677
2678// Attributes for operations with an authenticated and/or authorized enduser.
2679const (
2680	// EnduserIDKey is the attribute Key conforming to the "enduser.id"
2681	// semantic conventions. It represents the username or client_id extracted
2682	// from the access token or
2683	// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header
2684	// in the inbound request from outside the system.
2685	//
2686	// Type: string
2687	// RequirementLevel: Optional
2688	// Stability: experimental
2689	// Examples: 'username'
2690	EnduserIDKey = attribute.Key("enduser.id")
2691
2692	// EnduserRoleKey is the attribute Key conforming to the "enduser.role"
2693	// semantic conventions. It represents the actual/assumed role the client
2694	// is making the request under extracted from token or application security
2695	// context.
2696	//
2697	// Type: string
2698	// RequirementLevel: Optional
2699	// Stability: experimental
2700	// Examples: 'admin'
2701	EnduserRoleKey = attribute.Key("enduser.role")
2702
2703	// EnduserScopeKey is the attribute Key conforming to the "enduser.scope"
2704	// semantic conventions. It represents the scopes or granted authorities
2705	// the client currently possesses extracted from token or application
2706	// security context. The value would come from the scope associated with an
2707	// [OAuth 2.0 Access
2708	// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute
2709	// value in a [SAML 2.0
2710	// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).
2711	//
2712	// Type: string
2713	// RequirementLevel: Optional
2714	// Stability: experimental
2715	// Examples: 'read:message, write:files'
2716	EnduserScopeKey = attribute.Key("enduser.scope")
2717)
2718
2719// EnduserID returns an attribute KeyValue conforming to the "enduser.id"
2720// semantic conventions. It represents the username or client_id extracted from
2721// the access token or
2722// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in
2723// the inbound request from outside the system.
2724func EnduserID(val string) attribute.KeyValue {
2725	return EnduserIDKey.String(val)
2726}
2727
2728// EnduserRole returns an attribute KeyValue conforming to the
2729// "enduser.role" semantic conventions. It represents the actual/assumed role
2730// the client is making the request under extracted from token or application
2731// security context.
2732func EnduserRole(val string) attribute.KeyValue {
2733	return EnduserRoleKey.String(val)
2734}
2735
2736// EnduserScope returns an attribute KeyValue conforming to the
2737// "enduser.scope" semantic conventions. It represents the scopes or granted
2738// authorities the client currently possesses extracted from token or
2739// application security context. The value would come from the scope associated
2740// with an [OAuth 2.0 Access
2741// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute
2742// value in a [SAML 2.0
2743// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).
2744func EnduserScope(val string) attribute.KeyValue {
2745	return EnduserScopeKey.String(val)
2746}
2747
2748// The shared attributes used to report an error.
2749const (
2750	// ErrorTypeKey is the attribute Key conforming to the "error.type"
2751	// semantic conventions. It represents the describes a class of error the
2752	// operation ended with.
2753	//
2754	// Type: Enum
2755	// RequirementLevel: Optional
2756	// Stability: stable
2757	// Examples: 'timeout', 'java.net.UnknownHostException',
2758	// 'server_certificate_invalid', '500'
2759	// Note: The `error.type` SHOULD be predictable, and SHOULD have low
2760	// cardinality.
2761	//
2762	// When `error.type` is set to a type (e.g., an exception type), its
2763	// canonical class name identifying the type within the artifact SHOULD be
2764	// used.
2765	//
2766	// Instrumentations SHOULD document the list of errors they report.
2767	//
2768	// The cardinality of `error.type` within one instrumentation library
2769	// SHOULD be low.
2770	// Telemetry consumers that aggregate data from multiple instrumentation
2771	// libraries and applications
2772	// should be prepared for `error.type` to have high cardinality at query
2773	// time when no
2774	// additional filters are applied.
2775	//
2776	// If the operation has completed successfully, instrumentations SHOULD NOT
2777	// set `error.type`.
2778	//
2779	// If a specific domain defines its own set of error identifiers (such as
2780	// HTTP or gRPC status codes),
2781	// it's RECOMMENDED to:
2782	//
2783	// * Use a domain-specific attribute
2784	// * Set `error.type` to capture all errors, regardless of whether they are
2785	// defined within the domain-specific set or not.
2786	ErrorTypeKey = attribute.Key("error.type")
2787)
2788
2789var (
2790	// A fallback error value to be used when the instrumentation doesn't define a custom value
2791	ErrorTypeOther = ErrorTypeKey.String("_OTHER")
2792)
2793
2794// Attributes for Events represented using Log Records.
2795const (
2796	// EventNameKey is the attribute Key conforming to the "event.name"
2797	// semantic conventions. It represents the identifies the class / type of
2798	// event.
2799	//
2800	// Type: string
2801	// RequirementLevel: Optional
2802	// Stability: experimental
2803	// Examples: 'browser.mouse.click', 'device.app.lifecycle'
2804	// Note: Event names are subject to the same rules as [attribute
2805	// names](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.33.0/specification/common/attribute-naming.md).
2806	// Notably, event names are namespaced to avoid collisions and provide a
2807	// clean separation of semantics for events in separate domains like
2808	// browser, mobile, and kubernetes.
2809	EventNameKey = attribute.Key("event.name")
2810)
2811
2812// EventName returns an attribute KeyValue conforming to the "event.name"
2813// semantic conventions. It represents the identifies the class / type of
2814// event.
2815func EventName(val string) attribute.KeyValue {
2816	return EventNameKey.String(val)
2817}
2818
2819// The shared attributes used to report a single exception associated with a
2820// span or log.
2821const (
2822	// ExceptionEscapedKey is the attribute Key conforming to the
2823	// "exception.escaped" semantic conventions. It represents the sHOULD be
2824	// set to true if the exception event is recorded at a point where it is
2825	// known that the exception is escaping the scope of the span.
2826	//
2827	// Type: boolean
2828	// RequirementLevel: Optional
2829	// Stability: stable
2830	// Note: An exception is considered to have escaped (or left) the scope of
2831	// a span,
2832	// if that span is ended while the exception is still logically "in
2833	// flight".
2834	// This may be actually "in flight" in some languages (e.g. if the
2835	// exception
2836	// is passed to a Context manager's `__exit__` method in Python) but will
2837	// usually be caught at the point of recording the exception in most
2838	// languages.
2839	//
2840	// It is usually not possible to determine at the point where an exception
2841	// is thrown
2842	// whether it will escape the scope of a span.
2843	// However, it is trivial to know that an exception
2844	// will escape, if one checks for an active exception just before ending
2845	// the span,
2846	// as done in the [example for recording span
2847	// exceptions](https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-spans/#recording-an-exception).
2848	//
2849	// It follows that an exception may still escape the scope of the span
2850	// even if the `exception.escaped` attribute was not set or set to false,
2851	// since the event might have been recorded at a time where it was not
2852	// clear whether the exception will escape.
2853	ExceptionEscapedKey = attribute.Key("exception.escaped")
2854
2855	// ExceptionMessageKey is the attribute Key conforming to the
2856	// "exception.message" semantic conventions. It represents the exception
2857	// message.
2858	//
2859	// Type: string
2860	// RequirementLevel: Optional
2861	// Stability: stable
2862	// Examples: 'Division by zero', "Can't convert 'int' object to str
2863	// implicitly"
2864	ExceptionMessageKey = attribute.Key("exception.message")
2865
2866	// ExceptionStacktraceKey is the attribute Key conforming to the
2867	// "exception.stacktrace" semantic conventions. It represents a stacktrace
2868	// as a string in the natural representation for the language runtime. The
2869	// representation is to be determined and documented by each language SIG.
2870	//
2871	// Type: string
2872	// RequirementLevel: Optional
2873	// Stability: stable
2874	// Examples: 'Exception in thread "main" java.lang.RuntimeException: Test
2875	// exception\\n at '
2876	//  'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at '
2877	//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\n at '
2878	//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'
2879	ExceptionStacktraceKey = attribute.Key("exception.stacktrace")
2880
2881	// ExceptionTypeKey is the attribute Key conforming to the "exception.type"
2882	// semantic conventions. It represents the type of the exception (its
2883	// fully-qualified class name, if applicable). The dynamic type of the
2884	// exception should be preferred over the static type in languages that
2885	// support it.
2886	//
2887	// Type: string
2888	// RequirementLevel: Optional
2889	// Stability: stable
2890	// Examples: 'java.net.ConnectException', 'OSError'
2891	ExceptionTypeKey = attribute.Key("exception.type")
2892)
2893
2894// ExceptionEscaped returns an attribute KeyValue conforming to the
2895// "exception.escaped" semantic conventions. It represents the sHOULD be set to
2896// true if the exception event is recorded at a point where it is known that
2897// the exception is escaping the scope of the span.
2898func ExceptionEscaped(val bool) attribute.KeyValue {
2899	return ExceptionEscapedKey.Bool(val)
2900}
2901
2902// ExceptionMessage returns an attribute KeyValue conforming to the
2903// "exception.message" semantic conventions. It represents the exception
2904// message.
2905func ExceptionMessage(val string) attribute.KeyValue {
2906	return ExceptionMessageKey.String(val)
2907}
2908
2909// ExceptionStacktrace returns an attribute KeyValue conforming to the
2910// "exception.stacktrace" semantic conventions. It represents a stacktrace as a
2911// string in the natural representation for the language runtime. The
2912// representation is to be determined and documented by each language SIG.
2913func ExceptionStacktrace(val string) attribute.KeyValue {
2914	return ExceptionStacktraceKey.String(val)
2915}
2916
2917// ExceptionType returns an attribute KeyValue conforming to the
2918// "exception.type" semantic conventions. It represents the type of the
2919// exception (its fully-qualified class name, if applicable). The dynamic type
2920// of the exception should be preferred over the static type in languages that
2921// support it.
2922func ExceptionType(val string) attribute.KeyValue {
2923	return ExceptionTypeKey.String(val)
2924}
2925
2926// FaaS attributes
2927const (
2928	// FaaSColdstartKey is the attribute Key conforming to the "faas.coldstart"
2929	// semantic conventions. It represents a boolean that is true if the
2930	// serverless function is executed for the first time (aka cold-start).
2931	//
2932	// Type: boolean
2933	// RequirementLevel: Optional
2934	// Stability: experimental
2935	FaaSColdstartKey = attribute.Key("faas.coldstart")
2936
2937	// FaaSCronKey is the attribute Key conforming to the "faas.cron" semantic
2938	// conventions. It represents a string containing the schedule period as
2939	// [Cron
2940	// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
2941	//
2942	// Type: string
2943	// RequirementLevel: Optional
2944	// Stability: experimental
2945	// Examples: '0/5 * * * ? *'
2946	FaaSCronKey = attribute.Key("faas.cron")
2947
2948	// FaaSDocumentCollectionKey is the attribute Key conforming to the
2949	// "faas.document.collection" semantic conventions. It represents the name
2950	// of the source on which the triggering operation was performed. For
2951	// example, in Cloud Storage or S3 corresponds to the bucket name, and in
2952	// Cosmos DB to the database name.
2953	//
2954	// Type: string
2955	// RequirementLevel: Optional
2956	// Stability: experimental
2957	// Examples: 'myBucketName', 'myDBName'
2958	FaaSDocumentCollectionKey = attribute.Key("faas.document.collection")
2959
2960	// FaaSDocumentNameKey is the attribute Key conforming to the
2961	// "faas.document.name" semantic conventions. It represents the document
2962	// name/table subjected to the operation. For example, in Cloud Storage or
2963	// S3 is the name of the file, and in Cosmos DB the table name.
2964	//
2965	// Type: string
2966	// RequirementLevel: Optional
2967	// Stability: experimental
2968	// Examples: 'myFile.txt', 'myTableName'
2969	FaaSDocumentNameKey = attribute.Key("faas.document.name")
2970
2971	// FaaSDocumentOperationKey is the attribute Key conforming to the
2972	// "faas.document.operation" semantic conventions. It represents the
2973	// describes the type of the operation that was performed on the data.
2974	//
2975	// Type: Enum
2976	// RequirementLevel: Optional
2977	// Stability: experimental
2978	FaaSDocumentOperationKey = attribute.Key("faas.document.operation")
2979
2980	// FaaSDocumentTimeKey is the attribute Key conforming to the
2981	// "faas.document.time" semantic conventions. It represents a string
2982	// containing the time when the data was accessed in the [ISO
2983	// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
2984	// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
2985	//
2986	// Type: string
2987	// RequirementLevel: Optional
2988	// Stability: experimental
2989	// Examples: '2020-01-23T13:47:06Z'
2990	FaaSDocumentTimeKey = attribute.Key("faas.document.time")
2991
2992	// FaaSInstanceKey is the attribute Key conforming to the "faas.instance"
2993	// semantic conventions. It represents the execution environment ID as a
2994	// string, that will be potentially reused for other invocations to the
2995	// same function/function version.
2996	//
2997	// Type: string
2998	// RequirementLevel: Optional
2999	// Stability: experimental
3000	// Examples: '2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de'
3001	// Note: * **AWS Lambda:** Use the (full) log stream name.
3002	FaaSInstanceKey = attribute.Key("faas.instance")
3003
3004	// FaaSInvocationIDKey is the attribute Key conforming to the
3005	// "faas.invocation_id" semantic conventions. It represents the invocation
3006	// ID of the current function invocation.
3007	//
3008	// Type: string
3009	// RequirementLevel: Optional
3010	// Stability: experimental
3011	// Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28'
3012	FaaSInvocationIDKey = attribute.Key("faas.invocation_id")
3013
3014	// FaaSInvokedNameKey is the attribute Key conforming to the
3015	// "faas.invoked_name" semantic conventions. It represents the name of the
3016	// invoked function.
3017	//
3018	// Type: string
3019	// RequirementLevel: Optional
3020	// Stability: experimental
3021	// Examples: 'my-function'
3022	// Note: SHOULD be equal to the `faas.name` resource attribute of the
3023	// invoked function.
3024	FaaSInvokedNameKey = attribute.Key("faas.invoked_name")
3025
3026	// FaaSInvokedProviderKey is the attribute Key conforming to the
3027	// "faas.invoked_provider" semantic conventions. It represents the cloud
3028	// provider of the invoked function.
3029	//
3030	// Type: Enum
3031	// RequirementLevel: Optional
3032	// Stability: experimental
3033	// Note: SHOULD be equal to the `cloud.provider` resource attribute of the
3034	// invoked function.
3035	FaaSInvokedProviderKey = attribute.Key("faas.invoked_provider")
3036
3037	// FaaSInvokedRegionKey is the attribute Key conforming to the
3038	// "faas.invoked_region" semantic conventions. It represents the cloud
3039	// region of the invoked function.
3040	//
3041	// Type: string
3042	// RequirementLevel: Optional
3043	// Stability: experimental
3044	// Examples: 'eu-central-1'
3045	// Note: SHOULD be equal to the `cloud.region` resource attribute of the
3046	// invoked function.
3047	FaaSInvokedRegionKey = attribute.Key("faas.invoked_region")
3048
3049	// FaaSMaxMemoryKey is the attribute Key conforming to the
3050	// "faas.max_memory" semantic conventions. It represents the amount of
3051	// memory available to the serverless function converted to Bytes.
3052	//
3053	// Type: int
3054	// RequirementLevel: Optional
3055	// Stability: experimental
3056	// Examples: 134217728
3057	// Note: It's recommended to set this attribute since e.g. too little
3058	// memory can easily stop a Java AWS Lambda function from working
3059	// correctly. On AWS Lambda, the environment variable
3060	// `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information (which must
3061	// be multiplied by 1,048,576).
3062	FaaSMaxMemoryKey = attribute.Key("faas.max_memory")
3063
3064	// FaaSNameKey is the attribute Key conforming to the "faas.name" semantic
3065	// conventions. It represents the name of the single function that this
3066	// runtime instance executes.
3067	//
3068	// Type: string
3069	// RequirementLevel: Optional
3070	// Stability: experimental
3071	// Examples: 'my-function', 'myazurefunctionapp/some-function-name'
3072	// Note: This is the name of the function as configured/deployed on the
3073	// FaaS
3074	// platform and is usually different from the name of the callback
3075	// function (which may be stored in the
3076	// [`code.namespace`/`code.function`](/docs/general/attributes.md#source-code-attributes)
3077	// span attributes).
3078	//
3079	// For some cloud providers, the above definition is ambiguous. The
3080	// following
3081	// definition of function name MUST be used for this attribute
3082	// (and consequently the span name) for the listed cloud
3083	// providers/products:
3084	//
3085	// * **Azure:**  The full name `<FUNCAPP>/<FUNC>`, i.e., function app name
3086	//   followed by a forward slash followed by the function name (this form
3087	//   can also be seen in the resource JSON for the function).
3088	//   This means that a span attribute MUST be used, as an Azure function
3089	//   app can host multiple functions that would usually share
3090	//   a TracerProvider (see also the `cloud.resource_id` attribute).
3091	FaaSNameKey = attribute.Key("faas.name")
3092
3093	// FaaSTimeKey is the attribute Key conforming to the "faas.time" semantic
3094	// conventions. It represents a string containing the function invocation
3095	// time in the [ISO
3096	// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
3097	// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
3098	//
3099	// Type: string
3100	// RequirementLevel: Optional
3101	// Stability: experimental
3102	// Examples: '2020-01-23T13:47:06Z'
3103	FaaSTimeKey = attribute.Key("faas.time")
3104
3105	// FaaSTriggerKey is the attribute Key conforming to the "faas.trigger"
3106	// semantic conventions. It represents the type of the trigger which caused
3107	// this function invocation.
3108	//
3109	// Type: Enum
3110	// RequirementLevel: Optional
3111	// Stability: experimental
3112	FaaSTriggerKey = attribute.Key("faas.trigger")
3113
3114	// FaaSVersionKey is the attribute Key conforming to the "faas.version"
3115	// semantic conventions. It represents the immutable version of the
3116	// function being executed.
3117	//
3118	// Type: string
3119	// RequirementLevel: Optional
3120	// Stability: experimental
3121	// Examples: '26', 'pinkfroid-00002'
3122	// Note: Depending on the cloud provider and platform, use:
3123	//
3124	// * **AWS Lambda:** The [function
3125	// version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)
3126	//   (an integer represented as a decimal string).
3127	// * **Google Cloud Run (Services):** The
3128	// [revision](https://cloud.google.com/run/docs/managing/revisions)
3129	//   (i.e., the function name plus the revision suffix).
3130	// * **Google Cloud Functions:** The value of the
3131	//   [`K_REVISION` environment
3132	// variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).
3133	// * **Azure Functions:** Not applicable. Do not set this attribute.
3134	FaaSVersionKey = attribute.Key("faas.version")
3135)
3136
3137var (
3138	// When a new object is created
3139	FaaSDocumentOperationInsert = FaaSDocumentOperationKey.String("insert")
3140	// When an object is modified
3141	FaaSDocumentOperationEdit = FaaSDocumentOperationKey.String("edit")
3142	// When an object is deleted
3143	FaaSDocumentOperationDelete = FaaSDocumentOperationKey.String("delete")
3144)
3145
3146var (
3147	// Alibaba Cloud
3148	FaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String("alibaba_cloud")
3149	// Amazon Web Services
3150	FaaSInvokedProviderAWS = FaaSInvokedProviderKey.String("aws")
3151	// Microsoft Azure
3152	FaaSInvokedProviderAzure = FaaSInvokedProviderKey.String("azure")
3153	// Google Cloud Platform
3154	FaaSInvokedProviderGCP = FaaSInvokedProviderKey.String("gcp")
3155	// Tencent Cloud
3156	FaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String("tencent_cloud")
3157)
3158
3159var (
3160	// A response to some data source operation such as a database or filesystem read/write
3161	FaaSTriggerDatasource = FaaSTriggerKey.String("datasource")
3162	// To provide an answer to an inbound HTTP request
3163	FaaSTriggerHTTP = FaaSTriggerKey.String("http")
3164	// A function is set to be executed when messages are sent to a messaging system
3165	FaaSTriggerPubsub = FaaSTriggerKey.String("pubsub")
3166	// A function is scheduled to be executed regularly
3167	FaaSTriggerTimer = FaaSTriggerKey.String("timer")
3168	// If none of the others apply
3169	FaaSTriggerOther = FaaSTriggerKey.String("other")
3170)
3171
3172// FaaSColdstart returns an attribute KeyValue conforming to the
3173// "faas.coldstart" semantic conventions. It represents a boolean that is true
3174// if the serverless function is executed for the first time (aka cold-start).
3175func FaaSColdstart(val bool) attribute.KeyValue {
3176	return FaaSColdstartKey.Bool(val)
3177}
3178
3179// FaaSCron returns an attribute KeyValue conforming to the "faas.cron"
3180// semantic conventions. It represents a string containing the schedule period
3181// as [Cron
3182// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
3183func FaaSCron(val string) attribute.KeyValue {
3184	return FaaSCronKey.String(val)
3185}
3186
3187// FaaSDocumentCollection returns an attribute KeyValue conforming to the
3188// "faas.document.collection" semantic conventions. It represents the name of
3189// the source on which the triggering operation was performed. For example, in
3190// Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the
3191// database name.
3192func FaaSDocumentCollection(val string) attribute.KeyValue {
3193	return FaaSDocumentCollectionKey.String(val)
3194}
3195
3196// FaaSDocumentName returns an attribute KeyValue conforming to the
3197// "faas.document.name" semantic conventions. It represents the document
3198// name/table subjected to the operation. For example, in Cloud Storage or S3
3199// is the name of the file, and in Cosmos DB the table name.
3200func FaaSDocumentName(val string) attribute.KeyValue {
3201	return FaaSDocumentNameKey.String(val)
3202}
3203
3204// FaaSDocumentTime returns an attribute KeyValue conforming to the
3205// "faas.document.time" semantic conventions. It represents a string containing
3206// the time when the data was accessed in the [ISO
3207// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
3208// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
3209func FaaSDocumentTime(val string) attribute.KeyValue {
3210	return FaaSDocumentTimeKey.String(val)
3211}
3212
3213// FaaSInstance returns an attribute KeyValue conforming to the
3214// "faas.instance" semantic conventions. It represents the execution
3215// environment ID as a string, that will be potentially reused for other
3216// invocations to the same function/function version.
3217func FaaSInstance(val string) attribute.KeyValue {
3218	return FaaSInstanceKey.String(val)
3219}
3220
3221// FaaSInvocationID returns an attribute KeyValue conforming to the
3222// "faas.invocation_id" semantic conventions. It represents the invocation ID
3223// of the current function invocation.
3224func FaaSInvocationID(val string) attribute.KeyValue {
3225	return FaaSInvocationIDKey.String(val)
3226}
3227
3228// FaaSInvokedName returns an attribute KeyValue conforming to the
3229// "faas.invoked_name" semantic conventions. It represents the name of the
3230// invoked function.
3231func FaaSInvokedName(val string) attribute.KeyValue {
3232	return FaaSInvokedNameKey.String(val)
3233}
3234
3235// FaaSInvokedRegion returns an attribute KeyValue conforming to the
3236// "faas.invoked_region" semantic conventions. It represents the cloud region
3237// of the invoked function.
3238func FaaSInvokedRegion(val string) attribute.KeyValue {
3239	return FaaSInvokedRegionKey.String(val)
3240}
3241
3242// FaaSMaxMemory returns an attribute KeyValue conforming to the
3243// "faas.max_memory" semantic conventions. It represents the amount of memory
3244// available to the serverless function converted to Bytes.
3245func FaaSMaxMemory(val int) attribute.KeyValue {
3246	return FaaSMaxMemoryKey.Int(val)
3247}
3248
3249// FaaSName returns an attribute KeyValue conforming to the "faas.name"
3250// semantic conventions. It represents the name of the single function that
3251// this runtime instance executes.
3252func FaaSName(val string) attribute.KeyValue {
3253	return FaaSNameKey.String(val)
3254}
3255
3256// FaaSTime returns an attribute KeyValue conforming to the "faas.time"
3257// semantic conventions. It represents a string containing the function
3258// invocation time in the [ISO
3259// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format
3260// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
3261func FaaSTime(val string) attribute.KeyValue {
3262	return FaaSTimeKey.String(val)
3263}
3264
3265// FaaSVersion returns an attribute KeyValue conforming to the
3266// "faas.version" semantic conventions. It represents the immutable version of
3267// the function being executed.
3268func FaaSVersion(val string) attribute.KeyValue {
3269	return FaaSVersionKey.String(val)
3270}
3271
3272// Attributes for Feature Flags.
3273const (
3274	// FeatureFlagKeyKey is the attribute Key conforming to the
3275	// "feature_flag.key" semantic conventions. It represents the unique
3276	// identifier of the feature flag.
3277	//
3278	// Type: string
3279	// RequirementLevel: Optional
3280	// Stability: experimental
3281	// Examples: 'logo-color'
3282	FeatureFlagKeyKey = attribute.Key("feature_flag.key")
3283
3284	// FeatureFlagProviderNameKey is the attribute Key conforming to the
3285	// "feature_flag.provider_name" semantic conventions. It represents the
3286	// name of the service provider that performs the flag evaluation.
3287	//
3288	// Type: string
3289	// RequirementLevel: Optional
3290	// Stability: experimental
3291	// Examples: 'Flag Manager'
3292	FeatureFlagProviderNameKey = attribute.Key("feature_flag.provider_name")
3293
3294	// FeatureFlagVariantKey is the attribute Key conforming to the
3295	// "feature_flag.variant" semantic conventions. It represents the sHOULD be
3296	// a semantic identifier for a value. If one is unavailable, a stringified
3297	// version of the value can be used.
3298	//
3299	// Type: string
3300	// RequirementLevel: Optional
3301	// Stability: experimental
3302	// Examples: 'red', 'true', 'on'
3303	// Note: A semantic identifier, commonly referred to as a variant, provides
3304	// a means
3305	// for referring to a value without including the value itself. This can
3306	// provide additional context for understanding the meaning behind a value.
3307	// For example, the variant `red` maybe be used for the value `#c05543`.
3308	//
3309	// A stringified version of the value can be used in situations where a
3310	// semantic identifier is unavailable. String representation of the value
3311	// should be determined by the implementer.
3312	FeatureFlagVariantKey = attribute.Key("feature_flag.variant")
3313)
3314
3315// FeatureFlagKey returns an attribute KeyValue conforming to the
3316// "feature_flag.key" semantic conventions. It represents the unique identifier
3317// of the feature flag.
3318func FeatureFlagKey(val string) attribute.KeyValue {
3319	return FeatureFlagKeyKey.String(val)
3320}
3321
3322// FeatureFlagProviderName returns an attribute KeyValue conforming to the
3323// "feature_flag.provider_name" semantic conventions. It represents the name of
3324// the service provider that performs the flag evaluation.
3325func FeatureFlagProviderName(val string) attribute.KeyValue {
3326	return FeatureFlagProviderNameKey.String(val)
3327}
3328
3329// FeatureFlagVariant returns an attribute KeyValue conforming to the
3330// "feature_flag.variant" semantic conventions. It represents the sHOULD be a
3331// semantic identifier for a value. If one is unavailable, a stringified
3332// version of the value can be used.
3333func FeatureFlagVariant(val string) attribute.KeyValue {
3334	return FeatureFlagVariantKey.String(val)
3335}
3336
3337// Describes file attributes.
3338const (
3339	// FileDirectoryKey is the attribute Key conforming to the "file.directory"
3340	// semantic conventions. It represents the directory where the file is
3341	// located. It should include the drive letter, when appropriate.
3342	//
3343	// Type: string
3344	// RequirementLevel: Optional
3345	// Stability: experimental
3346	// Examples: '/home/user', 'C:\\Program Files\\MyApp'
3347	FileDirectoryKey = attribute.Key("file.directory")
3348
3349	// FileExtensionKey is the attribute Key conforming to the "file.extension"
3350	// semantic conventions. It represents the file extension, excluding the
3351	// leading dot.
3352	//
3353	// Type: string
3354	// RequirementLevel: Optional
3355	// Stability: experimental
3356	// Examples: 'png', 'gz'
3357	// Note: When the file name has multiple extensions (example.tar.gz), only
3358	// the last one should be captured ("gz", not "tar.gz").
3359	FileExtensionKey = attribute.Key("file.extension")
3360
3361	// FileNameKey is the attribute Key conforming to the "file.name" semantic
3362	// conventions. It represents the name of the file including the extension,
3363	// without the directory.
3364	//
3365	// Type: string
3366	// RequirementLevel: Optional
3367	// Stability: experimental
3368	// Examples: 'example.png'
3369	FileNameKey = attribute.Key("file.name")
3370
3371	// FilePathKey is the attribute Key conforming to the "file.path" semantic
3372	// conventions. It represents the full path to the file, including the file
3373	// name. It should include the drive letter, when appropriate.
3374	//
3375	// Type: string
3376	// RequirementLevel: Optional
3377	// Stability: experimental
3378	// Examples: '/home/alice/example.png', 'C:\\Program
3379	// Files\\MyApp\\myapp.exe'
3380	FilePathKey = attribute.Key("file.path")
3381
3382	// FileSizeKey is the attribute Key conforming to the "file.size" semantic
3383	// conventions. It represents the file size in bytes.
3384	//
3385	// Type: int
3386	// RequirementLevel: Optional
3387	// Stability: experimental
3388	FileSizeKey = attribute.Key("file.size")
3389)
3390
3391// FileDirectory returns an attribute KeyValue conforming to the
3392// "file.directory" semantic conventions. It represents the directory where the
3393// file is located. It should include the drive letter, when appropriate.
3394func FileDirectory(val string) attribute.KeyValue {
3395	return FileDirectoryKey.String(val)
3396}
3397
3398// FileExtension returns an attribute KeyValue conforming to the
3399// "file.extension" semantic conventions. It represents the file extension,
3400// excluding the leading dot.
3401func FileExtension(val string) attribute.KeyValue {
3402	return FileExtensionKey.String(val)
3403}
3404
3405// FileName returns an attribute KeyValue conforming to the "file.name"
3406// semantic conventions. It represents the name of the file including the
3407// extension, without the directory.
3408func FileName(val string) attribute.KeyValue {
3409	return FileNameKey.String(val)
3410}
3411
3412// FilePath returns an attribute KeyValue conforming to the "file.path"
3413// semantic conventions. It represents the full path to the file, including the
3414// file name. It should include the drive letter, when appropriate.
3415func FilePath(val string) attribute.KeyValue {
3416	return FilePathKey.String(val)
3417}
3418
3419// FileSize returns an attribute KeyValue conforming to the "file.size"
3420// semantic conventions. It represents the file size in bytes.
3421func FileSize(val int) attribute.KeyValue {
3422	return FileSizeKey.Int(val)
3423}
3424
3425// Attributes for Google Cloud Run.
3426const (
3427	// GCPCloudRunJobExecutionKey is the attribute Key conforming to the
3428	// "gcp.cloud_run.job.execution" semantic conventions. It represents the
3429	// name of the Cloud Run
3430	// [execution](https://cloud.google.com/run/docs/managing/job-executions)
3431	// being run for the Job, as set by the
3432	// [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)
3433	// environment variable.
3434	//
3435	// Type: string
3436	// RequirementLevel: Optional
3437	// Stability: experimental
3438	// Examples: 'job-name-xxxx', 'sample-job-mdw84'
3439	GCPCloudRunJobExecutionKey = attribute.Key("gcp.cloud_run.job.execution")
3440
3441	// GCPCloudRunJobTaskIndexKey is the attribute Key conforming to the
3442	// "gcp.cloud_run.job.task_index" semantic conventions. It represents the
3443	// index for a task within an execution as provided by the
3444	// [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)
3445	// environment variable.
3446	//
3447	// Type: int
3448	// RequirementLevel: Optional
3449	// Stability: experimental
3450	// Examples: 0, 1
3451	GCPCloudRunJobTaskIndexKey = attribute.Key("gcp.cloud_run.job.task_index")
3452)
3453
3454// GCPCloudRunJobExecution returns an attribute KeyValue conforming to the
3455// "gcp.cloud_run.job.execution" semantic conventions. It represents the name
3456// of the Cloud Run
3457// [execution](https://cloud.google.com/run/docs/managing/job-executions) being
3458// run for the Job, as set by the
3459// [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)
3460// environment variable.
3461func GCPCloudRunJobExecution(val string) attribute.KeyValue {
3462	return GCPCloudRunJobExecutionKey.String(val)
3463}
3464
3465// GCPCloudRunJobTaskIndex returns an attribute KeyValue conforming to the
3466// "gcp.cloud_run.job.task_index" semantic conventions. It represents the index
3467// for a task within an execution as provided by the
3468// [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)
3469// environment variable.
3470func GCPCloudRunJobTaskIndex(val int) attribute.KeyValue {
3471	return GCPCloudRunJobTaskIndexKey.Int(val)
3472}
3473
3474// Attributes for Google Compute Engine (GCE).
3475const (
3476	// GCPGceInstanceHostnameKey is the attribute Key conforming to the
3477	// "gcp.gce.instance.hostname" semantic conventions. It represents the
3478	// hostname of a GCE instance. This is the full value of the default or
3479	// [custom
3480	// hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).
3481	//
3482	// Type: string
3483	// RequirementLevel: Optional
3484	// Stability: experimental
3485	// Examples: 'my-host1234.example.com',
3486	// 'sample-vm.us-west1-b.c.my-project.internal'
3487	GCPGceInstanceHostnameKey = attribute.Key("gcp.gce.instance.hostname")
3488
3489	// GCPGceInstanceNameKey is the attribute Key conforming to the
3490	// "gcp.gce.instance.name" semantic conventions. It represents the instance
3491	// name of a GCE instance. This is the value provided by `host.name`, the
3492	// visible name of the instance in the Cloud Console UI, and the prefix for
3493	// the default hostname of the instance as defined by the [default internal
3494	// DNS
3495	// name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).
3496	//
3497	// Type: string
3498	// RequirementLevel: Optional
3499	// Stability: experimental
3500	// Examples: 'instance-1', 'my-vm-name'
3501	GCPGceInstanceNameKey = attribute.Key("gcp.gce.instance.name")
3502)
3503
3504// GCPGceInstanceHostname returns an attribute KeyValue conforming to the
3505// "gcp.gce.instance.hostname" semantic conventions. It represents the hostname
3506// of a GCE instance. This is the full value of the default or [custom
3507// hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).
3508func GCPGceInstanceHostname(val string) attribute.KeyValue {
3509	return GCPGceInstanceHostnameKey.String(val)
3510}
3511
3512// GCPGceInstanceName returns an attribute KeyValue conforming to the
3513// "gcp.gce.instance.name" semantic conventions. It represents the instance
3514// name of a GCE instance. This is the value provided by `host.name`, the
3515// visible name of the instance in the Cloud Console UI, and the prefix for the
3516// default hostname of the instance as defined by the [default internal DNS
3517// name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).
3518func GCPGceInstanceName(val string) attribute.KeyValue {
3519	return GCPGceInstanceNameKey.String(val)
3520}
3521
3522// The attributes used to describe telemetry in the context of LLM (Large
3523// Language Models) requests and responses.
3524const (
3525	// GenAiCompletionKey is the attribute Key conforming to the
3526	// "gen_ai.completion" semantic conventions. It represents the full
3527	// response received from the LLM.
3528	//
3529	// Type: string
3530	// RequirementLevel: Optional
3531	// Stability: experimental
3532	// Examples: "[{'role': 'assistant', 'content': 'The capital of France is
3533	// Paris.'}]"
3534	// Note: It's RECOMMENDED to format completions as JSON string matching
3535	// [OpenAI messages
3536	// format](https://platform.openai.com/docs/guides/text-generation)
3537	GenAiCompletionKey = attribute.Key("gen_ai.completion")
3538
3539	// GenAiPromptKey is the attribute Key conforming to the "gen_ai.prompt"
3540	// semantic conventions. It represents the full prompt sent to an LLM.
3541	//
3542	// Type: string
3543	// RequirementLevel: Optional
3544	// Stability: experimental
3545	// Examples: "[{'role': 'user', 'content': 'What is the capital of
3546	// France?'}]"
3547	// Note: It's RECOMMENDED to format prompts as JSON string matching [OpenAI
3548	// messages
3549	// format](https://platform.openai.com/docs/guides/text-generation)
3550	GenAiPromptKey = attribute.Key("gen_ai.prompt")
3551
3552	// GenAiRequestMaxTokensKey is the attribute Key conforming to the
3553	// "gen_ai.request.max_tokens" semantic conventions. It represents the
3554	// maximum number of tokens the LLM generates for a request.
3555	//
3556	// Type: int
3557	// RequirementLevel: Optional
3558	// Stability: experimental
3559	// Examples: 100
3560	GenAiRequestMaxTokensKey = attribute.Key("gen_ai.request.max_tokens")
3561
3562	// GenAiRequestModelKey is the attribute Key conforming to the
3563	// "gen_ai.request.model" semantic conventions. It represents the name of
3564	// the LLM a request is being made to.
3565	//
3566	// Type: string
3567	// RequirementLevel: Optional
3568	// Stability: experimental
3569	// Examples: 'gpt-4'
3570	GenAiRequestModelKey = attribute.Key("gen_ai.request.model")
3571
3572	// GenAiRequestTemperatureKey is the attribute Key conforming to the
3573	// "gen_ai.request.temperature" semantic conventions. It represents the
3574	// temperature setting for the LLM request.
3575	//
3576	// Type: double
3577	// RequirementLevel: Optional
3578	// Stability: experimental
3579	// Examples: 0.0
3580	GenAiRequestTemperatureKey = attribute.Key("gen_ai.request.temperature")
3581
3582	// GenAiRequestTopPKey is the attribute Key conforming to the
3583	// "gen_ai.request.top_p" semantic conventions. It represents the top_p
3584	// sampling setting for the LLM request.
3585	//
3586	// Type: double
3587	// RequirementLevel: Optional
3588	// Stability: experimental
3589	// Examples: 1.0
3590	GenAiRequestTopPKey = attribute.Key("gen_ai.request.top_p")
3591
3592	// GenAiResponseFinishReasonsKey is the attribute Key conforming to the
3593	// "gen_ai.response.finish_reasons" semantic conventions. It represents the
3594	// array of reasons the model stopped generating tokens, corresponding to
3595	// each generation received.
3596	//
3597	// Type: string[]
3598	// RequirementLevel: Optional
3599	// Stability: experimental
3600	// Examples: 'stop'
3601	GenAiResponseFinishReasonsKey = attribute.Key("gen_ai.response.finish_reasons")
3602
3603	// GenAiResponseIDKey is the attribute Key conforming to the
3604	// "gen_ai.response.id" semantic conventions. It represents the unique
3605	// identifier for the completion.
3606	//
3607	// Type: string
3608	// RequirementLevel: Optional
3609	// Stability: experimental
3610	// Examples: 'chatcmpl-123'
3611	GenAiResponseIDKey = attribute.Key("gen_ai.response.id")
3612
3613	// GenAiResponseModelKey is the attribute Key conforming to the
3614	// "gen_ai.response.model" semantic conventions. It represents the name of
3615	// the LLM a response was generated from.
3616	//
3617	// Type: string
3618	// RequirementLevel: Optional
3619	// Stability: experimental
3620	// Examples: 'gpt-4-0613'
3621	GenAiResponseModelKey = attribute.Key("gen_ai.response.model")
3622
3623	// GenAiSystemKey is the attribute Key conforming to the "gen_ai.system"
3624	// semantic conventions. It represents the Generative AI product as
3625	// identified by the client instrumentation.
3626	//
3627	// Type: Enum
3628	// RequirementLevel: Optional
3629	// Stability: experimental
3630	// Examples: 'openai'
3631	// Note: The actual GenAI product may differ from the one identified by the
3632	// client. For example, when using OpenAI client libraries to communicate
3633	// with Mistral, the `gen_ai.system` is set to `openai` based on the
3634	// instrumentation's best knowledge.
3635	GenAiSystemKey = attribute.Key("gen_ai.system")
3636
3637	// GenAiUsageCompletionTokensKey is the attribute Key conforming to the
3638	// "gen_ai.usage.completion_tokens" semantic conventions. It represents the
3639	// number of tokens used in the LLM response (completion).
3640	//
3641	// Type: int
3642	// RequirementLevel: Optional
3643	// Stability: experimental
3644	// Examples: 180
3645	GenAiUsageCompletionTokensKey = attribute.Key("gen_ai.usage.completion_tokens")
3646
3647	// GenAiUsagePromptTokensKey is the attribute Key conforming to the
3648	// "gen_ai.usage.prompt_tokens" semantic conventions. It represents the
3649	// number of tokens used in the LLM prompt.
3650	//
3651	// Type: int
3652	// RequirementLevel: Optional
3653	// Stability: experimental
3654	// Examples: 100
3655	GenAiUsagePromptTokensKey = attribute.Key("gen_ai.usage.prompt_tokens")
3656)
3657
3658var (
3659	// OpenAI
3660	GenAiSystemOpenai = GenAiSystemKey.String("openai")
3661)
3662
3663// GenAiCompletion returns an attribute KeyValue conforming to the
3664// "gen_ai.completion" semantic conventions. It represents the full response
3665// received from the LLM.
3666func GenAiCompletion(val string) attribute.KeyValue {
3667	return GenAiCompletionKey.String(val)
3668}
3669
3670// GenAiPrompt returns an attribute KeyValue conforming to the
3671// "gen_ai.prompt" semantic conventions. It represents the full prompt sent to
3672// an LLM.
3673func GenAiPrompt(val string) attribute.KeyValue {
3674	return GenAiPromptKey.String(val)
3675}
3676
3677// GenAiRequestMaxTokens returns an attribute KeyValue conforming to the
3678// "gen_ai.request.max_tokens" semantic conventions. It represents the maximum
3679// number of tokens the LLM generates for a request.
3680func GenAiRequestMaxTokens(val int) attribute.KeyValue {
3681	return GenAiRequestMaxTokensKey.Int(val)
3682}
3683
3684// GenAiRequestModel returns an attribute KeyValue conforming to the
3685// "gen_ai.request.model" semantic conventions. It represents the name of the
3686// LLM a request is being made to.
3687func GenAiRequestModel(val string) attribute.KeyValue {
3688	return GenAiRequestModelKey.String(val)
3689}
3690
3691// GenAiRequestTemperature returns an attribute KeyValue conforming to the
3692// "gen_ai.request.temperature" semantic conventions. It represents the
3693// temperature setting for the LLM request.
3694func GenAiRequestTemperature(val float64) attribute.KeyValue {
3695	return GenAiRequestTemperatureKey.Float64(val)
3696}
3697
3698// GenAiRequestTopP returns an attribute KeyValue conforming to the
3699// "gen_ai.request.top_p" semantic conventions. It represents the top_p
3700// sampling setting for the LLM request.
3701func GenAiRequestTopP(val float64) attribute.KeyValue {
3702	return GenAiRequestTopPKey.Float64(val)
3703}
3704
3705// GenAiResponseFinishReasons returns an attribute KeyValue conforming to
3706// the "gen_ai.response.finish_reasons" semantic conventions. It represents the
3707// array of reasons the model stopped generating tokens, corresponding to each
3708// generation received.
3709func GenAiResponseFinishReasons(val ...string) attribute.KeyValue {
3710	return GenAiResponseFinishReasonsKey.StringSlice(val)
3711}
3712
3713// GenAiResponseID returns an attribute KeyValue conforming to the
3714// "gen_ai.response.id" semantic conventions. It represents the unique
3715// identifier for the completion.
3716func GenAiResponseID(val string) attribute.KeyValue {
3717	return GenAiResponseIDKey.String(val)
3718}
3719
3720// GenAiResponseModel returns an attribute KeyValue conforming to the
3721// "gen_ai.response.model" semantic conventions. It represents the name of the
3722// LLM a response was generated from.
3723func GenAiResponseModel(val string) attribute.KeyValue {
3724	return GenAiResponseModelKey.String(val)
3725}
3726
3727// GenAiUsageCompletionTokens returns an attribute KeyValue conforming to
3728// the "gen_ai.usage.completion_tokens" semantic conventions. It represents the
3729// number of tokens used in the LLM response (completion).
3730func GenAiUsageCompletionTokens(val int) attribute.KeyValue {
3731	return GenAiUsageCompletionTokensKey.Int(val)
3732}
3733
3734// GenAiUsagePromptTokens returns an attribute KeyValue conforming to the
3735// "gen_ai.usage.prompt_tokens" semantic conventions. It represents the number
3736// of tokens used in the LLM prompt.
3737func GenAiUsagePromptTokens(val int) attribute.KeyValue {
3738	return GenAiUsagePromptTokensKey.Int(val)
3739}
3740
3741// Attributes for GraphQL.
3742const (
3743	// GraphqlDocumentKey is the attribute Key conforming to the
3744	// "graphql.document" semantic conventions. It represents the GraphQL
3745	// document being executed.
3746	//
3747	// Type: string
3748	// RequirementLevel: Optional
3749	// Stability: experimental
3750	// Examples: 'query findBookByID { bookByID(id: ?) { name } }'
3751	// Note: The value may be sanitized to exclude sensitive information.
3752	GraphqlDocumentKey = attribute.Key("graphql.document")
3753
3754	// GraphqlOperationNameKey is the attribute Key conforming to the
3755	// "graphql.operation.name" semantic conventions. It represents the name of
3756	// the operation being executed.
3757	//
3758	// Type: string
3759	// RequirementLevel: Optional
3760	// Stability: experimental
3761	// Examples: 'findBookByID'
3762	GraphqlOperationNameKey = attribute.Key("graphql.operation.name")
3763
3764	// GraphqlOperationTypeKey is the attribute Key conforming to the
3765	// "graphql.operation.type" semantic conventions. It represents the type of
3766	// the operation being executed.
3767	//
3768	// Type: Enum
3769	// RequirementLevel: Optional
3770	// Stability: experimental
3771	// Examples: 'query', 'mutation', 'subscription'
3772	GraphqlOperationTypeKey = attribute.Key("graphql.operation.type")
3773)
3774
3775var (
3776	// GraphQL query
3777	GraphqlOperationTypeQuery = GraphqlOperationTypeKey.String("query")
3778	// GraphQL mutation
3779	GraphqlOperationTypeMutation = GraphqlOperationTypeKey.String("mutation")
3780	// GraphQL subscription
3781	GraphqlOperationTypeSubscription = GraphqlOperationTypeKey.String("subscription")
3782)
3783
3784// GraphqlDocument returns an attribute KeyValue conforming to the
3785// "graphql.document" semantic conventions. It represents the GraphQL document
3786// being executed.
3787func GraphqlDocument(val string) attribute.KeyValue {
3788	return GraphqlDocumentKey.String(val)
3789}
3790
3791// GraphqlOperationName returns an attribute KeyValue conforming to the
3792// "graphql.operation.name" semantic conventions. It represents the name of the
3793// operation being executed.
3794func GraphqlOperationName(val string) attribute.KeyValue {
3795	return GraphqlOperationNameKey.String(val)
3796}
3797
3798// Attributes for the Android platform on which the Android application is
3799// running.
3800const (
3801	// HerokuAppIDKey is the attribute Key conforming to the "heroku.app.id"
3802	// semantic conventions. It represents the unique identifier for the
3803	// application
3804	//
3805	// Type: string
3806	// RequirementLevel: Optional
3807	// Stability: experimental
3808	// Examples: '2daa2797-e42b-4624-9322-ec3f968df4da'
3809	HerokuAppIDKey = attribute.Key("heroku.app.id")
3810
3811	// HerokuReleaseCommitKey is the attribute Key conforming to the
3812	// "heroku.release.commit" semantic conventions. It represents the commit
3813	// hash for the current release
3814	//
3815	// Type: string
3816	// RequirementLevel: Optional
3817	// Stability: experimental
3818	// Examples: 'e6134959463efd8966b20e75b913cafe3f5ec'
3819	HerokuReleaseCommitKey = attribute.Key("heroku.release.commit")
3820
3821	// HerokuReleaseCreationTimestampKey is the attribute Key conforming to the
3822	// "heroku.release.creation_timestamp" semantic conventions. It represents
3823	// the time and date the release was created
3824	//
3825	// Type: string
3826	// RequirementLevel: Optional
3827	// Stability: experimental
3828	// Examples: '2022-10-23T18:00:42Z'
3829	HerokuReleaseCreationTimestampKey = attribute.Key("heroku.release.creation_timestamp")
3830)
3831
3832// HerokuAppID returns an attribute KeyValue conforming to the
3833// "heroku.app.id" semantic conventions. It represents the unique identifier
3834// for the application
3835func HerokuAppID(val string) attribute.KeyValue {
3836	return HerokuAppIDKey.String(val)
3837}
3838
3839// HerokuReleaseCommit returns an attribute KeyValue conforming to the
3840// "heroku.release.commit" semantic conventions. It represents the commit hash
3841// for the current release
3842func HerokuReleaseCommit(val string) attribute.KeyValue {
3843	return HerokuReleaseCommitKey.String(val)
3844}
3845
3846// HerokuReleaseCreationTimestamp returns an attribute KeyValue conforming
3847// to the "heroku.release.creation_timestamp" semantic conventions. It
3848// represents the time and date the release was created
3849func HerokuReleaseCreationTimestamp(val string) attribute.KeyValue {
3850	return HerokuReleaseCreationTimestampKey.String(val)
3851}
3852
3853// A host is defined as a computing instance. For example, physical servers,
3854// virtual machines, switches or disk array.
3855const (
3856	// HostArchKey is the attribute Key conforming to the "host.arch" semantic
3857	// conventions. It represents the CPU architecture the host system is
3858	// running on.
3859	//
3860	// Type: Enum
3861	// RequirementLevel: Optional
3862	// Stability: experimental
3863	HostArchKey = attribute.Key("host.arch")
3864
3865	// HostCPUCacheL2SizeKey is the attribute Key conforming to the
3866	// "host.cpu.cache.l2.size" semantic conventions. It represents the amount
3867	// of level 2 memory cache available to the processor (in Bytes).
3868	//
3869	// Type: int
3870	// RequirementLevel: Optional
3871	// Stability: experimental
3872	// Examples: 12288000
3873	HostCPUCacheL2SizeKey = attribute.Key("host.cpu.cache.l2.size")
3874
3875	// HostCPUFamilyKey is the attribute Key conforming to the
3876	// "host.cpu.family" semantic conventions. It represents the family or
3877	// generation of the CPU.
3878	//
3879	// Type: string
3880	// RequirementLevel: Optional
3881	// Stability: experimental
3882	// Examples: '6', 'PA-RISC 1.1e'
3883	HostCPUFamilyKey = attribute.Key("host.cpu.family")
3884
3885	// HostCPUModelIDKey is the attribute Key conforming to the
3886	// "host.cpu.model.id" semantic conventions. It represents the model
3887	// identifier. It provides more granular information about the CPU,
3888	// distinguishing it from other CPUs within the same family.
3889	//
3890	// Type: string
3891	// RequirementLevel: Optional
3892	// Stability: experimental
3893	// Examples: '6', '9000/778/B180L'
3894	HostCPUModelIDKey = attribute.Key("host.cpu.model.id")
3895
3896	// HostCPUModelNameKey is the attribute Key conforming to the
3897	// "host.cpu.model.name" semantic conventions. It represents the model
3898	// designation of the processor.
3899	//
3900	// Type: string
3901	// RequirementLevel: Optional
3902	// Stability: experimental
3903	// Examples: '11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz'
3904	HostCPUModelNameKey = attribute.Key("host.cpu.model.name")
3905
3906	// HostCPUSteppingKey is the attribute Key conforming to the
3907	// "host.cpu.stepping" semantic conventions. It represents the stepping or
3908	// core revisions.
3909	//
3910	// Type: string
3911	// RequirementLevel: Optional
3912	// Stability: experimental
3913	// Examples: '1', 'r1p1'
3914	HostCPUSteppingKey = attribute.Key("host.cpu.stepping")
3915
3916	// HostCPUVendorIDKey is the attribute Key conforming to the
3917	// "host.cpu.vendor.id" semantic conventions. It represents the processor
3918	// manufacturer identifier. A maximum 12-character string.
3919	//
3920	// Type: string
3921	// RequirementLevel: Optional
3922	// Stability: experimental
3923	// Examples: 'GenuineIntel'
3924	// Note: [CPUID](https://wiki.osdev.org/CPUID) command returns the vendor
3925	// ID string in EBX, EDX and ECX registers. Writing these to memory in this
3926	// order results in a 12-character string.
3927	HostCPUVendorIDKey = attribute.Key("host.cpu.vendor.id")
3928
3929	// HostIDKey is the attribute Key conforming to the "host.id" semantic
3930	// conventions. It represents the unique host ID. For Cloud, this must be
3931	// the instance_id assigned by the cloud provider. For non-containerized
3932	// systems, this should be the `machine-id`. See the table below for the
3933	// sources to use to determine the `machine-id` based on operating system.
3934	//
3935	// Type: string
3936	// RequirementLevel: Optional
3937	// Stability: experimental
3938	// Examples: 'fdbf79e8af94cb7f9e8df36789187052'
3939	HostIDKey = attribute.Key("host.id")
3940
3941	// HostImageIDKey is the attribute Key conforming to the "host.image.id"
3942	// semantic conventions. It represents the vM image ID or host OS image ID.
3943	// For Cloud, this value is from the provider.
3944	//
3945	// Type: string
3946	// RequirementLevel: Optional
3947	// Stability: experimental
3948	// Examples: 'ami-07b06b442921831e5'
3949	HostImageIDKey = attribute.Key("host.image.id")
3950
3951	// HostImageNameKey is the attribute Key conforming to the
3952	// "host.image.name" semantic conventions. It represents the name of the VM
3953	// image or OS install the host was instantiated from.
3954	//
3955	// Type: string
3956	// RequirementLevel: Optional
3957	// Stability: experimental
3958	// Examples: 'infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905'
3959	HostImageNameKey = attribute.Key("host.image.name")
3960
3961	// HostImageVersionKey is the attribute Key conforming to the
3962	// "host.image.version" semantic conventions. It represents the version
3963	// string of the VM image or host OS as defined in [Version
3964	// Attributes](/docs/resource/README.md#version-attributes).
3965	//
3966	// Type: string
3967	// RequirementLevel: Optional
3968	// Stability: experimental
3969	// Examples: '0.1'
3970	HostImageVersionKey = attribute.Key("host.image.version")
3971
3972	// HostIPKey is the attribute Key conforming to the "host.ip" semantic
3973	// conventions. It represents the available IP addresses of the host,
3974	// excluding loopback interfaces.
3975	//
3976	// Type: string[]
3977	// RequirementLevel: Optional
3978	// Stability: experimental
3979	// Examples: '192.168.1.140', 'fe80::abc2:4a28:737a:609e'
3980	// Note: IPv4 Addresses MUST be specified in dotted-quad notation. IPv6
3981	// addresses MUST be specified in the [RFC
3982	// 5952](https://www.rfc-editor.org/rfc/rfc5952.html) format.
3983	HostIPKey = attribute.Key("host.ip")
3984
3985	// HostMacKey is the attribute Key conforming to the "host.mac" semantic
3986	// conventions. It represents the available MAC addresses of the host,
3987	// excluding loopback interfaces.
3988	//
3989	// Type: string[]
3990	// RequirementLevel: Optional
3991	// Stability: experimental
3992	// Examples: 'AC-DE-48-23-45-67', 'AC-DE-48-23-45-67-01-9F'
3993	// Note: MAC Addresses MUST be represented in [IEEE RA hexadecimal
3994	// form](https://standards.ieee.org/wp-content/uploads/import/documents/tutorials/eui.pdf):
3995	// as hyphen-separated octets in uppercase hexadecimal form from most to
3996	// least significant.
3997	HostMacKey = attribute.Key("host.mac")
3998
3999	// HostNameKey is the attribute Key conforming to the "host.name" semantic
4000	// conventions. It represents the name of the host. On Unix systems, it may
4001	// contain what the hostname command returns, or the fully qualified
4002	// hostname, or another name specified by the user.
4003	//
4004	// Type: string
4005	// RequirementLevel: Optional
4006	// Stability: experimental
4007	// Examples: 'opentelemetry-test'
4008	HostNameKey = attribute.Key("host.name")
4009
4010	// HostTypeKey is the attribute Key conforming to the "host.type" semantic
4011	// conventions. It represents the type of host. For Cloud, this must be the
4012	// machine type.
4013	//
4014	// Type: string
4015	// RequirementLevel: Optional
4016	// Stability: experimental
4017	// Examples: 'n1-standard-1'
4018	HostTypeKey = attribute.Key("host.type")
4019)
4020
4021var (
4022	// AMD64
4023	HostArchAMD64 = HostArchKey.String("amd64")
4024	// ARM32
4025	HostArchARM32 = HostArchKey.String("arm32")
4026	// ARM64
4027	HostArchARM64 = HostArchKey.String("arm64")
4028	// Itanium
4029	HostArchIA64 = HostArchKey.String("ia64")
4030	// 32-bit PowerPC
4031	HostArchPPC32 = HostArchKey.String("ppc32")
4032	// 64-bit PowerPC
4033	HostArchPPC64 = HostArchKey.String("ppc64")
4034	// IBM z/Architecture
4035	HostArchS390x = HostArchKey.String("s390x")
4036	// 32-bit x86
4037	HostArchX86 = HostArchKey.String("x86")
4038)
4039
4040// HostCPUCacheL2Size returns an attribute KeyValue conforming to the
4041// "host.cpu.cache.l2.size" semantic conventions. It represents the amount of
4042// level 2 memory cache available to the processor (in Bytes).
4043func HostCPUCacheL2Size(val int) attribute.KeyValue {
4044	return HostCPUCacheL2SizeKey.Int(val)
4045}
4046
4047// HostCPUFamily returns an attribute KeyValue conforming to the
4048// "host.cpu.family" semantic conventions. It represents the family or
4049// generation of the CPU.
4050func HostCPUFamily(val string) attribute.KeyValue {
4051	return HostCPUFamilyKey.String(val)
4052}
4053
4054// HostCPUModelID returns an attribute KeyValue conforming to the
4055// "host.cpu.model.id" semantic conventions. It represents the model
4056// identifier. It provides more granular information about the CPU,
4057// distinguishing it from other CPUs within the same family.
4058func HostCPUModelID(val string) attribute.KeyValue {
4059	return HostCPUModelIDKey.String(val)
4060}
4061
4062// HostCPUModelName returns an attribute KeyValue conforming to the
4063// "host.cpu.model.name" semantic conventions. It represents the model
4064// designation of the processor.
4065func HostCPUModelName(val string) attribute.KeyValue {
4066	return HostCPUModelNameKey.String(val)
4067}
4068
4069// HostCPUStepping returns an attribute KeyValue conforming to the
4070// "host.cpu.stepping" semantic conventions. It represents the stepping or core
4071// revisions.
4072func HostCPUStepping(val string) attribute.KeyValue {
4073	return HostCPUSteppingKey.String(val)
4074}
4075
4076// HostCPUVendorID returns an attribute KeyValue conforming to the
4077// "host.cpu.vendor.id" semantic conventions. It represents the processor
4078// manufacturer identifier. A maximum 12-character string.
4079func HostCPUVendorID(val string) attribute.KeyValue {
4080	return HostCPUVendorIDKey.String(val)
4081}
4082
4083// HostID returns an attribute KeyValue conforming to the "host.id" semantic
4084// conventions. It represents the unique host ID. For Cloud, this must be the
4085// instance_id assigned by the cloud provider. For non-containerized systems,
4086// this should be the `machine-id`. See the table below for the sources to use
4087// to determine the `machine-id` based on operating system.
4088func HostID(val string) attribute.KeyValue {
4089	return HostIDKey.String(val)
4090}
4091
4092// HostImageID returns an attribute KeyValue conforming to the
4093// "host.image.id" semantic conventions. It represents the vM image ID or host
4094// OS image ID. For Cloud, this value is from the provider.
4095func HostImageID(val string) attribute.KeyValue {
4096	return HostImageIDKey.String(val)
4097}
4098
4099// HostImageName returns an attribute KeyValue conforming to the
4100// "host.image.name" semantic conventions. It represents the name of the VM
4101// image or OS install the host was instantiated from.
4102func HostImageName(val string) attribute.KeyValue {
4103	return HostImageNameKey.String(val)
4104}
4105
4106// HostImageVersion returns an attribute KeyValue conforming to the
4107// "host.image.version" semantic conventions. It represents the version string
4108// of the VM image or host OS as defined in [Version
4109// Attributes](/docs/resource/README.md#version-attributes).
4110func HostImageVersion(val string) attribute.KeyValue {
4111	return HostImageVersionKey.String(val)
4112}
4113
4114// HostIP returns an attribute KeyValue conforming to the "host.ip" semantic
4115// conventions. It represents the available IP addresses of the host, excluding
4116// loopback interfaces.
4117func HostIP(val ...string) attribute.KeyValue {
4118	return HostIPKey.StringSlice(val)
4119}
4120
4121// HostMac returns an attribute KeyValue conforming to the "host.mac"
4122// semantic conventions. It represents the available MAC addresses of the host,
4123// excluding loopback interfaces.
4124func HostMac(val ...string) attribute.KeyValue {
4125	return HostMacKey.StringSlice(val)
4126}
4127
4128// HostName returns an attribute KeyValue conforming to the "host.name"
4129// semantic conventions. It represents the name of the host. On Unix systems,
4130// it may contain what the hostname command returns, or the fully qualified
4131// hostname, or another name specified by the user.
4132func HostName(val string) attribute.KeyValue {
4133	return HostNameKey.String(val)
4134}
4135
4136// HostType returns an attribute KeyValue conforming to the "host.type"
4137// semantic conventions. It represents the type of host. For Cloud, this must
4138// be the machine type.
4139func HostType(val string) attribute.KeyValue {
4140	return HostTypeKey.String(val)
4141}
4142
4143// Semantic convention attributes in the HTTP namespace.
4144const (
4145	// HTTPConnectionStateKey is the attribute Key conforming to the
4146	// "http.connection.state" semantic conventions. It represents the state of
4147	// the HTTP connection in the HTTP connection pool.
4148	//
4149	// Type: Enum
4150	// RequirementLevel: Optional
4151	// Stability: experimental
4152	// Examples: 'active', 'idle'
4153	HTTPConnectionStateKey = attribute.Key("http.connection.state")
4154
4155	// HTTPRequestBodySizeKey is the attribute Key conforming to the
4156	// "http.request.body.size" semantic conventions. It represents the size of
4157	// the request payload body in bytes. This is the number of bytes
4158	// transferred excluding headers and is often, but not always, present as
4159	// the
4160	// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)
4161	// header. For requests using transport encoding, this should be the
4162	// compressed size.
4163	//
4164	// Type: int
4165	// RequirementLevel: Optional
4166	// Stability: experimental
4167	// Examples: 3495
4168	HTTPRequestBodySizeKey = attribute.Key("http.request.body.size")
4169
4170	// HTTPRequestMethodKey is the attribute Key conforming to the
4171	// "http.request.method" semantic conventions. It represents the hTTP
4172	// request method.
4173	//
4174	// Type: Enum
4175	// RequirementLevel: Optional
4176	// Stability: stable
4177	// Examples: 'GET', 'POST', 'HEAD'
4178	// Note: HTTP request method value SHOULD be "known" to the
4179	// instrumentation.
4180	// By default, this convention defines "known" methods as the ones listed
4181	// in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)
4182	// and the PATCH method defined in
4183	// [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).
4184	//
4185	// If the HTTP request method is not known to instrumentation, it MUST set
4186	// the `http.request.method` attribute to `_OTHER`.
4187	//
4188	// If the HTTP instrumentation could end up converting valid HTTP request
4189	// methods to `_OTHER`, then it MUST provide a way to override
4190	// the list of known HTTP methods. If this override is done via environment
4191	// variable, then the environment variable MUST be named
4192	// OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated
4193	// list of case-sensitive known HTTP methods
4194	// (this list MUST be a full override of the default known method, it is
4195	// not a list of known methods in addition to the defaults).
4196	//
4197	// HTTP method names are case-sensitive and `http.request.method` attribute
4198	// value MUST match a known HTTP method name exactly.
4199	// Instrumentations for specific web frameworks that consider HTTP methods
4200	// to be case insensitive, SHOULD populate a canonical equivalent.
4201	// Tracing instrumentations that do so, MUST also set
4202	// `http.request.method_original` to the original value.
4203	HTTPRequestMethodKey = attribute.Key("http.request.method")
4204
4205	// HTTPRequestMethodOriginalKey is the attribute Key conforming to the
4206	// "http.request.method_original" semantic conventions. It represents the
4207	// original HTTP method sent by the client in the request line.
4208	//
4209	// Type: string
4210	// RequirementLevel: Optional
4211	// Stability: stable
4212	// Examples: 'GeT', 'ACL', 'foo'
4213	HTTPRequestMethodOriginalKey = attribute.Key("http.request.method_original")
4214
4215	// HTTPRequestResendCountKey is the attribute Key conforming to the
4216	// "http.request.resend_count" semantic conventions. It represents the
4217	// ordinal number of request resending attempt (for any reason, including
4218	// redirects).
4219	//
4220	// Type: int
4221	// RequirementLevel: Optional
4222	// Stability: stable
4223	// Examples: 3
4224	// Note: The resend count SHOULD be updated each time an HTTP request gets
4225	// resent by the client, regardless of what was the cause of the resending
4226	// (e.g. redirection, authorization failure, 503 Server Unavailable,
4227	// network issues, or any other).
4228	HTTPRequestResendCountKey = attribute.Key("http.request.resend_count")
4229
4230	// HTTPRequestSizeKey is the attribute Key conforming to the
4231	// "http.request.size" semantic conventions. It represents the total size
4232	// of the request in bytes. This should be the total number of bytes sent
4233	// over the wire, including the request line (HTTP/1.1), framing (HTTP/2
4234	// and HTTP/3), headers, and request body if any.
4235	//
4236	// Type: int
4237	// RequirementLevel: Optional
4238	// Stability: experimental
4239	// Examples: 1437
4240	HTTPRequestSizeKey = attribute.Key("http.request.size")
4241
4242	// HTTPResponseBodySizeKey is the attribute Key conforming to the
4243	// "http.response.body.size" semantic conventions. It represents the size
4244	// of the response payload body in bytes. This is the number of bytes
4245	// transferred excluding headers and is often, but not always, present as
4246	// the
4247	// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)
4248	// header. For requests using transport encoding, this should be the
4249	// compressed size.
4250	//
4251	// Type: int
4252	// RequirementLevel: Optional
4253	// Stability: experimental
4254	// Examples: 3495
4255	HTTPResponseBodySizeKey = attribute.Key("http.response.body.size")
4256
4257	// HTTPResponseSizeKey is the attribute Key conforming to the
4258	// "http.response.size" semantic conventions. It represents the total size
4259	// of the response in bytes. This should be the total number of bytes sent
4260	// over the wire, including the status line (HTTP/1.1), framing (HTTP/2 and
4261	// HTTP/3), headers, and response body and trailers if any.
4262	//
4263	// Type: int
4264	// RequirementLevel: Optional
4265	// Stability: experimental
4266	// Examples: 1437
4267	HTTPResponseSizeKey = attribute.Key("http.response.size")
4268
4269	// HTTPResponseStatusCodeKey is the attribute Key conforming to the
4270	// "http.response.status_code" semantic conventions. It represents the
4271	// [HTTP response status
4272	// code](https://tools.ietf.org/html/rfc7231#section-6).
4273	//
4274	// Type: int
4275	// RequirementLevel: Optional
4276	// Stability: stable
4277	// Examples: 200
4278	HTTPResponseStatusCodeKey = attribute.Key("http.response.status_code")
4279
4280	// HTTPRouteKey is the attribute Key conforming to the "http.route"
4281	// semantic conventions. It represents the matched route, that is, the path
4282	// template in the format used by the respective server framework.
4283	//
4284	// Type: string
4285	// RequirementLevel: Optional
4286	// Stability: stable
4287	// Examples: '/users/:userID?', '{controller}/{action}/{id?}'
4288	// Note: MUST NOT be populated when this is not supported by the HTTP
4289	// server framework as the route attribute should have low-cardinality and
4290	// the URI path can NOT substitute it.
4291	// SHOULD include the [application
4292	// root](/docs/http/http-spans.md#http-server-definitions) if there is one.
4293	HTTPRouteKey = attribute.Key("http.route")
4294)
4295
4296var (
4297	// active state
4298	HTTPConnectionStateActive = HTTPConnectionStateKey.String("active")
4299	// idle state
4300	HTTPConnectionStateIdle = HTTPConnectionStateKey.String("idle")
4301)
4302
4303var (
4304	// CONNECT method
4305	HTTPRequestMethodConnect = HTTPRequestMethodKey.String("CONNECT")
4306	// DELETE method
4307	HTTPRequestMethodDelete = HTTPRequestMethodKey.String("DELETE")
4308	// GET method
4309	HTTPRequestMethodGet = HTTPRequestMethodKey.String("GET")
4310	// HEAD method
4311	HTTPRequestMethodHead = HTTPRequestMethodKey.String("HEAD")
4312	// OPTIONS method
4313	HTTPRequestMethodOptions = HTTPRequestMethodKey.String("OPTIONS")
4314	// PATCH method
4315	HTTPRequestMethodPatch = HTTPRequestMethodKey.String("PATCH")
4316	// POST method
4317	HTTPRequestMethodPost = HTTPRequestMethodKey.String("POST")
4318	// PUT method
4319	HTTPRequestMethodPut = HTTPRequestMethodKey.String("PUT")
4320	// TRACE method
4321	HTTPRequestMethodTrace = HTTPRequestMethodKey.String("TRACE")
4322	// Any HTTP method that the instrumentation has no prior knowledge of
4323	HTTPRequestMethodOther = HTTPRequestMethodKey.String("_OTHER")
4324)
4325
4326// HTTPRequestBodySize returns an attribute KeyValue conforming to the
4327// "http.request.body.size" semantic conventions. It represents the size of the
4328// request payload body in bytes. This is the number of bytes transferred
4329// excluding headers and is often, but not always, present as the
4330// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)
4331// header. For requests using transport encoding, this should be the compressed
4332// size.
4333func HTTPRequestBodySize(val int) attribute.KeyValue {
4334	return HTTPRequestBodySizeKey.Int(val)
4335}
4336
4337// HTTPRequestMethodOriginal returns an attribute KeyValue conforming to the
4338// "http.request.method_original" semantic conventions. It represents the
4339// original HTTP method sent by the client in the request line.
4340func HTTPRequestMethodOriginal(val string) attribute.KeyValue {
4341	return HTTPRequestMethodOriginalKey.String(val)
4342}
4343
4344// HTTPRequestResendCount returns an attribute KeyValue conforming to the
4345// "http.request.resend_count" semantic conventions. It represents the ordinal
4346// number of request resending attempt (for any reason, including redirects).
4347func HTTPRequestResendCount(val int) attribute.KeyValue {
4348	return HTTPRequestResendCountKey.Int(val)
4349}
4350
4351// HTTPRequestSize returns an attribute KeyValue conforming to the
4352// "http.request.size" semantic conventions. It represents the total size of
4353// the request in bytes. This should be the total number of bytes sent over the
4354// wire, including the request line (HTTP/1.1), framing (HTTP/2 and HTTP/3),
4355// headers, and request body if any.
4356func HTTPRequestSize(val int) attribute.KeyValue {
4357	return HTTPRequestSizeKey.Int(val)
4358}
4359
4360// HTTPResponseBodySize returns an attribute KeyValue conforming to the
4361// "http.response.body.size" semantic conventions. It represents the size of
4362// the response payload body in bytes. This is the number of bytes transferred
4363// excluding headers and is often, but not always, present as the
4364// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)
4365// header. For requests using transport encoding, this should be the compressed
4366// size.
4367func HTTPResponseBodySize(val int) attribute.KeyValue {
4368	return HTTPResponseBodySizeKey.Int(val)
4369}
4370
4371// HTTPResponseSize returns an attribute KeyValue conforming to the
4372// "http.response.size" semantic conventions. It represents the total size of
4373// the response in bytes. This should be the total number of bytes sent over
4374// the wire, including the status line (HTTP/1.1), framing (HTTP/2 and HTTP/3),
4375// headers, and response body and trailers if any.
4376func HTTPResponseSize(val int) attribute.KeyValue {
4377	return HTTPResponseSizeKey.Int(val)
4378}
4379
4380// HTTPResponseStatusCode returns an attribute KeyValue conforming to the
4381// "http.response.status_code" semantic conventions. It represents the [HTTP
4382// response status code](https://tools.ietf.org/html/rfc7231#section-6).
4383func HTTPResponseStatusCode(val int) attribute.KeyValue {
4384	return HTTPResponseStatusCodeKey.Int(val)
4385}
4386
4387// HTTPRoute returns an attribute KeyValue conforming to the "http.route"
4388// semantic conventions. It represents the matched route, that is, the path
4389// template in the format used by the respective server framework.
4390func HTTPRoute(val string) attribute.KeyValue {
4391	return HTTPRouteKey.String(val)
4392}
4393
4394// Java Virtual machine related attributes.
4395const (
4396	// JvmBufferPoolNameKey is the attribute Key conforming to the
4397	// "jvm.buffer.pool.name" semantic conventions. It represents the name of
4398	// the buffer pool.
4399	//
4400	// Type: string
4401	// RequirementLevel: Optional
4402	// Stability: experimental
4403	// Examples: 'mapped', 'direct'
4404	// Note: Pool names are generally obtained via
4405	// [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
4406	JvmBufferPoolNameKey = attribute.Key("jvm.buffer.pool.name")
4407
4408	// JvmGcActionKey is the attribute Key conforming to the "jvm.gc.action"
4409	// semantic conventions. It represents the name of the garbage collector
4410	// action.
4411	//
4412	// Type: string
4413	// RequirementLevel: Optional
4414	// Stability: stable
4415	// Examples: 'end of minor GC', 'end of major GC'
4416	// Note: Garbage collector action is generally obtained via
4417	// [GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).
4418	JvmGcActionKey = attribute.Key("jvm.gc.action")
4419
4420	// JvmGcNameKey is the attribute Key conforming to the "jvm.gc.name"
4421	// semantic conventions. It represents the name of the garbage collector.
4422	//
4423	// Type: string
4424	// RequirementLevel: Optional
4425	// Stability: stable
4426	// Examples: 'G1 Young Generation', 'G1 Old Generation'
4427	// Note: Garbage collector name is generally obtained via
4428	// [GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).
4429	JvmGcNameKey = attribute.Key("jvm.gc.name")
4430
4431	// JvmMemoryPoolNameKey is the attribute Key conforming to the
4432	// "jvm.memory.pool.name" semantic conventions. It represents the name of
4433	// the memory pool.
4434	//
4435	// Type: string
4436	// RequirementLevel: Optional
4437	// Stability: stable
4438	// Examples: 'G1 Old Gen', 'G1 Eden space', 'G1 Survivor Space'
4439	// Note: Pool names are generally obtained via
4440	// [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
4441	JvmMemoryPoolNameKey = attribute.Key("jvm.memory.pool.name")
4442
4443	// JvmMemoryTypeKey is the attribute Key conforming to the
4444	// "jvm.memory.type" semantic conventions. It represents the type of
4445	// memory.
4446	//
4447	// Type: Enum
4448	// RequirementLevel: Optional
4449	// Stability: stable
4450	// Examples: 'heap', 'non_heap'
4451	JvmMemoryTypeKey = attribute.Key("jvm.memory.type")
4452
4453	// JvmThreadDaemonKey is the attribute Key conforming to the
4454	// "jvm.thread.daemon" semantic conventions. It represents the whether the
4455	// thread is daemon or not.
4456	//
4457	// Type: boolean
4458	// RequirementLevel: Optional
4459	// Stability: stable
4460	JvmThreadDaemonKey = attribute.Key("jvm.thread.daemon")
4461
4462	// JvmThreadStateKey is the attribute Key conforming to the
4463	// "jvm.thread.state" semantic conventions. It represents the state of the
4464	// thread.
4465	//
4466	// Type: Enum
4467	// RequirementLevel: Optional
4468	// Stability: stable
4469	// Examples: 'runnable', 'blocked'
4470	JvmThreadStateKey = attribute.Key("jvm.thread.state")
4471)
4472
4473var (
4474	// Heap memory
4475	JvmMemoryTypeHeap = JvmMemoryTypeKey.String("heap")
4476	// Non-heap memory
4477	JvmMemoryTypeNonHeap = JvmMemoryTypeKey.String("non_heap")
4478)
4479
4480var (
4481	// A thread that has not yet started is in this state
4482	JvmThreadStateNew = JvmThreadStateKey.String("new")
4483	// A thread executing in the Java virtual machine is in this state
4484	JvmThreadStateRunnable = JvmThreadStateKey.String("runnable")
4485	// A thread that is blocked waiting for a monitor lock is in this state
4486	JvmThreadStateBlocked = JvmThreadStateKey.String("blocked")
4487	// A thread that is waiting indefinitely for another thread to perform a particular action is in this state
4488	JvmThreadStateWaiting = JvmThreadStateKey.String("waiting")
4489	// A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state
4490	JvmThreadStateTimedWaiting = JvmThreadStateKey.String("timed_waiting")
4491	// A thread that has exited is in this state
4492	JvmThreadStateTerminated = JvmThreadStateKey.String("terminated")
4493)
4494
4495// JvmBufferPoolName returns an attribute KeyValue conforming to the
4496// "jvm.buffer.pool.name" semantic conventions. It represents the name of the
4497// buffer pool.
4498func JvmBufferPoolName(val string) attribute.KeyValue {
4499	return JvmBufferPoolNameKey.String(val)
4500}
4501
4502// JvmGcAction returns an attribute KeyValue conforming to the
4503// "jvm.gc.action" semantic conventions. It represents the name of the garbage
4504// collector action.
4505func JvmGcAction(val string) attribute.KeyValue {
4506	return JvmGcActionKey.String(val)
4507}
4508
4509// JvmGcName returns an attribute KeyValue conforming to the "jvm.gc.name"
4510// semantic conventions. It represents the name of the garbage collector.
4511func JvmGcName(val string) attribute.KeyValue {
4512	return JvmGcNameKey.String(val)
4513}
4514
4515// JvmMemoryPoolName returns an attribute KeyValue conforming to the
4516// "jvm.memory.pool.name" semantic conventions. It represents the name of the
4517// memory pool.
4518func JvmMemoryPoolName(val string) attribute.KeyValue {
4519	return JvmMemoryPoolNameKey.String(val)
4520}
4521
4522// JvmThreadDaemon returns an attribute KeyValue conforming to the
4523// "jvm.thread.daemon" semantic conventions. It represents the whether the
4524// thread is daemon or not.
4525func JvmThreadDaemon(val bool) attribute.KeyValue {
4526	return JvmThreadDaemonKey.Bool(val)
4527}
4528
4529// Kubernetes resource attributes.
4530const (
4531	// K8SClusterNameKey is the attribute Key conforming to the
4532	// "k8s.cluster.name" semantic conventions. It represents the name of the
4533	// cluster.
4534	//
4535	// Type: string
4536	// RequirementLevel: Optional
4537	// Stability: experimental
4538	// Examples: 'opentelemetry-cluster'
4539	K8SClusterNameKey = attribute.Key("k8s.cluster.name")
4540
4541	// K8SClusterUIDKey is the attribute Key conforming to the
4542	// "k8s.cluster.uid" semantic conventions. It represents a pseudo-ID for
4543	// the cluster, set to the UID of the `kube-system` namespace.
4544	//
4545	// Type: string
4546	// RequirementLevel: Optional
4547	// Stability: experimental
4548	// Examples: '218fc5a9-a5f1-4b54-aa05-46717d0ab26d'
4549	// Note: K8S doesn't have support for obtaining a cluster ID. If this is
4550	// ever
4551	// added, we will recommend collecting the `k8s.cluster.uid` through the
4552	// official APIs. In the meantime, we are able to use the `uid` of the
4553	// `kube-system` namespace as a proxy for cluster ID. Read on for the
4554	// rationale.
4555	//
4556	// Every object created in a K8S cluster is assigned a distinct UID. The
4557	// `kube-system` namespace is used by Kubernetes itself and will exist
4558	// for the lifetime of the cluster. Using the `uid` of the `kube-system`
4559	// namespace is a reasonable proxy for the K8S ClusterID as it will only
4560	// change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are
4561	// UUIDs as standardized by
4562	// [ISO/IEC 9834-8 and ITU-T
4563	// X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html).
4564	// Which states:
4565	//
4566	// > If generated according to one of the mechanisms defined in Rec.
4567	//   ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be
4568	//   different from all other UUIDs generated before 3603 A.D., or is
4569	//   extremely likely to be different (depending on the mechanism chosen).
4570	//
4571	// Therefore, UIDs between clusters should be extremely unlikely to
4572	// conflict.
4573	K8SClusterUIDKey = attribute.Key("k8s.cluster.uid")
4574
4575	// K8SContainerNameKey is the attribute Key conforming to the
4576	// "k8s.container.name" semantic conventions. It represents the name of the
4577	// Container from Pod specification, must be unique within a Pod. Container
4578	// runtime usually uses different globally unique name (`container.name`).
4579	//
4580	// Type: string
4581	// RequirementLevel: Optional
4582	// Stability: experimental
4583	// Examples: 'redis'
4584	K8SContainerNameKey = attribute.Key("k8s.container.name")
4585
4586	// K8SContainerRestartCountKey is the attribute Key conforming to the
4587	// "k8s.container.restart_count" semantic conventions. It represents the
4588	// number of times the container was restarted. This attribute can be used
4589	// to identify a particular container (running or stopped) within a
4590	// container spec.
4591	//
4592	// Type: int
4593	// RequirementLevel: Optional
4594	// Stability: experimental
4595	K8SContainerRestartCountKey = attribute.Key("k8s.container.restart_count")
4596
4597	// K8SContainerStatusLastTerminatedReasonKey is the attribute Key
4598	// conforming to the "k8s.container.status.last_terminated_reason" semantic
4599	// conventions. It represents the last terminated reason of the Container.
4600	//
4601	// Type: string
4602	// RequirementLevel: Optional
4603	// Stability: experimental
4604	// Examples: 'Evicted', 'Error'
4605	K8SContainerStatusLastTerminatedReasonKey = attribute.Key("k8s.container.status.last_terminated_reason")
4606
4607	// K8SCronJobNameKey is the attribute Key conforming to the
4608	// "k8s.cronjob.name" semantic conventions. It represents the name of the
4609	// CronJob.
4610	//
4611	// Type: string
4612	// RequirementLevel: Optional
4613	// Stability: experimental
4614	// Examples: 'opentelemetry'
4615	K8SCronJobNameKey = attribute.Key("k8s.cronjob.name")
4616
4617	// K8SCronJobUIDKey is the attribute Key conforming to the
4618	// "k8s.cronjob.uid" semantic conventions. It represents the UID of the
4619	// CronJob.
4620	//
4621	// Type: string
4622	// RequirementLevel: Optional
4623	// Stability: experimental
4624	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4625	K8SCronJobUIDKey = attribute.Key("k8s.cronjob.uid")
4626
4627	// K8SDaemonSetNameKey is the attribute Key conforming to the
4628	// "k8s.daemonset.name" semantic conventions. It represents the name of the
4629	// DaemonSet.
4630	//
4631	// Type: string
4632	// RequirementLevel: Optional
4633	// Stability: experimental
4634	// Examples: 'opentelemetry'
4635	K8SDaemonSetNameKey = attribute.Key("k8s.daemonset.name")
4636
4637	// K8SDaemonSetUIDKey is the attribute Key conforming to the
4638	// "k8s.daemonset.uid" semantic conventions. It represents the UID of the
4639	// DaemonSet.
4640	//
4641	// Type: string
4642	// RequirementLevel: Optional
4643	// Stability: experimental
4644	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4645	K8SDaemonSetUIDKey = attribute.Key("k8s.daemonset.uid")
4646
4647	// K8SDeploymentNameKey is the attribute Key conforming to the
4648	// "k8s.deployment.name" semantic conventions. It represents the name of
4649	// the Deployment.
4650	//
4651	// Type: string
4652	// RequirementLevel: Optional
4653	// Stability: experimental
4654	// Examples: 'opentelemetry'
4655	K8SDeploymentNameKey = attribute.Key("k8s.deployment.name")
4656
4657	// K8SDeploymentUIDKey is the attribute Key conforming to the
4658	// "k8s.deployment.uid" semantic conventions. It represents the UID of the
4659	// Deployment.
4660	//
4661	// Type: string
4662	// RequirementLevel: Optional
4663	// Stability: experimental
4664	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4665	K8SDeploymentUIDKey = attribute.Key("k8s.deployment.uid")
4666
4667	// K8SJobNameKey is the attribute Key conforming to the "k8s.job.name"
4668	// semantic conventions. It represents the name of the Job.
4669	//
4670	// Type: string
4671	// RequirementLevel: Optional
4672	// Stability: experimental
4673	// Examples: 'opentelemetry'
4674	K8SJobNameKey = attribute.Key("k8s.job.name")
4675
4676	// K8SJobUIDKey is the attribute Key conforming to the "k8s.job.uid"
4677	// semantic conventions. It represents the UID of the Job.
4678	//
4679	// Type: string
4680	// RequirementLevel: Optional
4681	// Stability: experimental
4682	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4683	K8SJobUIDKey = attribute.Key("k8s.job.uid")
4684
4685	// K8SNamespaceNameKey is the attribute Key conforming to the
4686	// "k8s.namespace.name" semantic conventions. It represents the name of the
4687	// namespace that the pod is running in.
4688	//
4689	// Type: string
4690	// RequirementLevel: Optional
4691	// Stability: experimental
4692	// Examples: 'default'
4693	K8SNamespaceNameKey = attribute.Key("k8s.namespace.name")
4694
4695	// K8SNodeNameKey is the attribute Key conforming to the "k8s.node.name"
4696	// semantic conventions. It represents the name of the Node.
4697	//
4698	// Type: string
4699	// RequirementLevel: Optional
4700	// Stability: experimental
4701	// Examples: 'node-1'
4702	K8SNodeNameKey = attribute.Key("k8s.node.name")
4703
4704	// K8SNodeUIDKey is the attribute Key conforming to the "k8s.node.uid"
4705	// semantic conventions. It represents the UID of the Node.
4706	//
4707	// Type: string
4708	// RequirementLevel: Optional
4709	// Stability: experimental
4710	// Examples: '1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2'
4711	K8SNodeUIDKey = attribute.Key("k8s.node.uid")
4712
4713	// K8SPodNameKey is the attribute Key conforming to the "k8s.pod.name"
4714	// semantic conventions. It represents the name of the Pod.
4715	//
4716	// Type: string
4717	// RequirementLevel: Optional
4718	// Stability: experimental
4719	// Examples: 'opentelemetry-pod-autoconf'
4720	K8SPodNameKey = attribute.Key("k8s.pod.name")
4721
4722	// K8SPodUIDKey is the attribute Key conforming to the "k8s.pod.uid"
4723	// semantic conventions. It represents the UID of the Pod.
4724	//
4725	// Type: string
4726	// RequirementLevel: Optional
4727	// Stability: experimental
4728	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4729	K8SPodUIDKey = attribute.Key("k8s.pod.uid")
4730
4731	// K8SReplicaSetNameKey is the attribute Key conforming to the
4732	// "k8s.replicaset.name" semantic conventions. It represents the name of
4733	// the ReplicaSet.
4734	//
4735	// Type: string
4736	// RequirementLevel: Optional
4737	// Stability: experimental
4738	// Examples: 'opentelemetry'
4739	K8SReplicaSetNameKey = attribute.Key("k8s.replicaset.name")
4740
4741	// K8SReplicaSetUIDKey is the attribute Key conforming to the
4742	// "k8s.replicaset.uid" semantic conventions. It represents the UID of the
4743	// ReplicaSet.
4744	//
4745	// Type: string
4746	// RequirementLevel: Optional
4747	// Stability: experimental
4748	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4749	K8SReplicaSetUIDKey = attribute.Key("k8s.replicaset.uid")
4750
4751	// K8SStatefulSetNameKey is the attribute Key conforming to the
4752	// "k8s.statefulset.name" semantic conventions. It represents the name of
4753	// the StatefulSet.
4754	//
4755	// Type: string
4756	// RequirementLevel: Optional
4757	// Stability: experimental
4758	// Examples: 'opentelemetry'
4759	K8SStatefulSetNameKey = attribute.Key("k8s.statefulset.name")
4760
4761	// K8SStatefulSetUIDKey is the attribute Key conforming to the
4762	// "k8s.statefulset.uid" semantic conventions. It represents the UID of the
4763	// StatefulSet.
4764	//
4765	// Type: string
4766	// RequirementLevel: Optional
4767	// Stability: experimental
4768	// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
4769	K8SStatefulSetUIDKey = attribute.Key("k8s.statefulset.uid")
4770)
4771
4772// K8SClusterName returns an attribute KeyValue conforming to the
4773// "k8s.cluster.name" semantic conventions. It represents the name of the
4774// cluster.
4775func K8SClusterName(val string) attribute.KeyValue {
4776	return K8SClusterNameKey.String(val)
4777}
4778
4779// K8SClusterUID returns an attribute KeyValue conforming to the
4780// "k8s.cluster.uid" semantic conventions. It represents a pseudo-ID for the
4781// cluster, set to the UID of the `kube-system` namespace.
4782func K8SClusterUID(val string) attribute.KeyValue {
4783	return K8SClusterUIDKey.String(val)
4784}
4785
4786// K8SContainerName returns an attribute KeyValue conforming to the
4787// "k8s.container.name" semantic conventions. It represents the name of the
4788// Container from Pod specification, must be unique within a Pod. Container
4789// runtime usually uses different globally unique name (`container.name`).
4790func K8SContainerName(val string) attribute.KeyValue {
4791	return K8SContainerNameKey.String(val)
4792}
4793
4794// K8SContainerRestartCount returns an attribute KeyValue conforming to the
4795// "k8s.container.restart_count" semantic conventions. It represents the number
4796// of times the container was restarted. This attribute can be used to identify
4797// a particular container (running or stopped) within a container spec.
4798func K8SContainerRestartCount(val int) attribute.KeyValue {
4799	return K8SContainerRestartCountKey.Int(val)
4800}
4801
4802// K8SContainerStatusLastTerminatedReason returns an attribute KeyValue
4803// conforming to the "k8s.container.status.last_terminated_reason" semantic
4804// conventions. It represents the last terminated reason of the Container.
4805func K8SContainerStatusLastTerminatedReason(val string) attribute.KeyValue {
4806	return K8SContainerStatusLastTerminatedReasonKey.String(val)
4807}
4808
4809// K8SCronJobName returns an attribute KeyValue conforming to the
4810// "k8s.cronjob.name" semantic conventions. It represents the name of the
4811// CronJob.
4812func K8SCronJobName(val string) attribute.KeyValue {
4813	return K8SCronJobNameKey.String(val)
4814}
4815
4816// K8SCronJobUID returns an attribute KeyValue conforming to the
4817// "k8s.cronjob.uid" semantic conventions. It represents the UID of the
4818// CronJob.
4819func K8SCronJobUID(val string) attribute.KeyValue {
4820	return K8SCronJobUIDKey.String(val)
4821}
4822
4823// K8SDaemonSetName returns an attribute KeyValue conforming to the
4824// "k8s.daemonset.name" semantic conventions. It represents the name of the
4825// DaemonSet.
4826func K8SDaemonSetName(val string) attribute.KeyValue {
4827	return K8SDaemonSetNameKey.String(val)
4828}
4829
4830// K8SDaemonSetUID returns an attribute KeyValue conforming to the
4831// "k8s.daemonset.uid" semantic conventions. It represents the UID of the
4832// DaemonSet.
4833func K8SDaemonSetUID(val string) attribute.KeyValue {
4834	return K8SDaemonSetUIDKey.String(val)
4835}
4836
4837// K8SDeploymentName returns an attribute KeyValue conforming to the
4838// "k8s.deployment.name" semantic conventions. It represents the name of the
4839// Deployment.
4840func K8SDeploymentName(val string) attribute.KeyValue {
4841	return K8SDeploymentNameKey.String(val)
4842}
4843
4844// K8SDeploymentUID returns an attribute KeyValue conforming to the
4845// "k8s.deployment.uid" semantic conventions. It represents the UID of the
4846// Deployment.
4847func K8SDeploymentUID(val string) attribute.KeyValue {
4848	return K8SDeploymentUIDKey.String(val)
4849}
4850
4851// K8SJobName returns an attribute KeyValue conforming to the "k8s.job.name"
4852// semantic conventions. It represents the name of the Job.
4853func K8SJobName(val string) attribute.KeyValue {
4854	return K8SJobNameKey.String(val)
4855}
4856
4857// K8SJobUID returns an attribute KeyValue conforming to the "k8s.job.uid"
4858// semantic conventions. It represents the UID of the Job.
4859func K8SJobUID(val string) attribute.KeyValue {
4860	return K8SJobUIDKey.String(val)
4861}
4862
4863// K8SNamespaceName returns an attribute KeyValue conforming to the
4864// "k8s.namespace.name" semantic conventions. It represents the name of the
4865// namespace that the pod is running in.
4866func K8SNamespaceName(val string) attribute.KeyValue {
4867	return K8SNamespaceNameKey.String(val)
4868}
4869
4870// K8SNodeName returns an attribute KeyValue conforming to the
4871// "k8s.node.name" semantic conventions. It represents the name of the Node.
4872func K8SNodeName(val string) attribute.KeyValue {
4873	return K8SNodeNameKey.String(val)
4874}
4875
4876// K8SNodeUID returns an attribute KeyValue conforming to the "k8s.node.uid"
4877// semantic conventions. It represents the UID of the Node.
4878func K8SNodeUID(val string) attribute.KeyValue {
4879	return K8SNodeUIDKey.String(val)
4880}
4881
4882// K8SPodName returns an attribute KeyValue conforming to the "k8s.pod.name"
4883// semantic conventions. It represents the name of the Pod.
4884func K8SPodName(val string) attribute.KeyValue {
4885	return K8SPodNameKey.String(val)
4886}
4887
4888// K8SPodUID returns an attribute KeyValue conforming to the "k8s.pod.uid"
4889// semantic conventions. It represents the UID of the Pod.
4890func K8SPodUID(val string) attribute.KeyValue {
4891	return K8SPodUIDKey.String(val)
4892}
4893
4894// K8SReplicaSetName returns an attribute KeyValue conforming to the
4895// "k8s.replicaset.name" semantic conventions. It represents the name of the
4896// ReplicaSet.
4897func K8SReplicaSetName(val string) attribute.KeyValue {
4898	return K8SReplicaSetNameKey.String(val)
4899}
4900
4901// K8SReplicaSetUID returns an attribute KeyValue conforming to the
4902// "k8s.replicaset.uid" semantic conventions. It represents the UID of the
4903// ReplicaSet.
4904func K8SReplicaSetUID(val string) attribute.KeyValue {
4905	return K8SReplicaSetUIDKey.String(val)
4906}
4907
4908// K8SStatefulSetName returns an attribute KeyValue conforming to the
4909// "k8s.statefulset.name" semantic conventions. It represents the name of the
4910// StatefulSet.
4911func K8SStatefulSetName(val string) attribute.KeyValue {
4912	return K8SStatefulSetNameKey.String(val)
4913}
4914
4915// K8SStatefulSetUID returns an attribute KeyValue conforming to the
4916// "k8s.statefulset.uid" semantic conventions. It represents the UID of the
4917// StatefulSet.
4918func K8SStatefulSetUID(val string) attribute.KeyValue {
4919	return K8SStatefulSetUIDKey.String(val)
4920}
4921
4922// Log attributes
4923const (
4924	// LogIostreamKey is the attribute Key conforming to the "log.iostream"
4925	// semantic conventions. It represents the stream associated with the log.
4926	// See below for a list of well-known values.
4927	//
4928	// Type: Enum
4929	// RequirementLevel: Optional
4930	// Stability: experimental
4931	LogIostreamKey = attribute.Key("log.iostream")
4932)
4933
4934var (
4935	// Logs from stdout stream
4936	LogIostreamStdout = LogIostreamKey.String("stdout")
4937	// Events from stderr stream
4938	LogIostreamStderr = LogIostreamKey.String("stderr")
4939)
4940
4941// Attributes for a file to which log was emitted.
4942const (
4943	// LogFileNameKey is the attribute Key conforming to the "log.file.name"
4944	// semantic conventions. It represents the basename of the file.
4945	//
4946	// Type: string
4947	// RequirementLevel: Optional
4948	// Stability: experimental
4949	// Examples: 'audit.log'
4950	LogFileNameKey = attribute.Key("log.file.name")
4951
4952	// LogFileNameResolvedKey is the attribute Key conforming to the
4953	// "log.file.name_resolved" semantic conventions. It represents the
4954	// basename of the file, with symlinks resolved.
4955	//
4956	// Type: string
4957	// RequirementLevel: Optional
4958	// Stability: experimental
4959	// Examples: 'uuid.log'
4960	LogFileNameResolvedKey = attribute.Key("log.file.name_resolved")
4961
4962	// LogFilePathKey is the attribute Key conforming to the "log.file.path"
4963	// semantic conventions. It represents the full path to the file.
4964	//
4965	// Type: string
4966	// RequirementLevel: Optional
4967	// Stability: experimental
4968	// Examples: '/var/log/mysql/audit.log'
4969	LogFilePathKey = attribute.Key("log.file.path")
4970
4971	// LogFilePathResolvedKey is the attribute Key conforming to the
4972	// "log.file.path_resolved" semantic conventions. It represents the full
4973	// path to the file, with symlinks resolved.
4974	//
4975	// Type: string
4976	// RequirementLevel: Optional
4977	// Stability: experimental
4978	// Examples: '/var/lib/docker/uuid.log'
4979	LogFilePathResolvedKey = attribute.Key("log.file.path_resolved")
4980)
4981
4982// LogFileName returns an attribute KeyValue conforming to the
4983// "log.file.name" semantic conventions. It represents the basename of the
4984// file.
4985func LogFileName(val string) attribute.KeyValue {
4986	return LogFileNameKey.String(val)
4987}
4988
4989// LogFileNameResolved returns an attribute KeyValue conforming to the
4990// "log.file.name_resolved" semantic conventions. It represents the basename of
4991// the file, with symlinks resolved.
4992func LogFileNameResolved(val string) attribute.KeyValue {
4993	return LogFileNameResolvedKey.String(val)
4994}
4995
4996// LogFilePath returns an attribute KeyValue conforming to the
4997// "log.file.path" semantic conventions. It represents the full path to the
4998// file.
4999func LogFilePath(val string) attribute.KeyValue {
5000	return LogFilePathKey.String(val)
5001}
5002
5003// LogFilePathResolved returns an attribute KeyValue conforming to the
5004// "log.file.path_resolved" semantic conventions. It represents the full path
5005// to the file, with symlinks resolved.
5006func LogFilePathResolved(val string) attribute.KeyValue {
5007	return LogFilePathResolvedKey.String(val)
5008}
5009
5010// The generic attributes that may be used in any Log Record.
5011const (
5012	// LogRecordUIDKey is the attribute Key conforming to the "log.record.uid"
5013	// semantic conventions. It represents a unique identifier for the Log
5014	// Record.
5015	//
5016	// Type: string
5017	// RequirementLevel: Optional
5018	// Stability: experimental
5019	// Examples: '01ARZ3NDEKTSV4RRFFQ69G5FAV'
5020	// Note: If an id is provided, other log records with the same id will be
5021	// considered duplicates and can be removed safely. This means, that two
5022	// distinguishable log records MUST have different values.
5023	// The id MAY be an [Universally Unique Lexicographically Sortable
5024	// Identifier (ULID)](https://github.com/ulid/spec), but other identifiers
5025	// (e.g. UUID) may be used as needed.
5026	LogRecordUIDKey = attribute.Key("log.record.uid")
5027)
5028
5029// LogRecordUID returns an attribute KeyValue conforming to the
5030// "log.record.uid" semantic conventions. It represents a unique identifier for
5031// the Log Record.
5032func LogRecordUID(val string) attribute.KeyValue {
5033	return LogRecordUIDKey.String(val)
5034}
5035
5036// Attributes describing telemetry around messaging systems and messaging
5037// activities.
5038const (
5039	// MessagingBatchMessageCountKey is the attribute Key conforming to the
5040	// "messaging.batch.message_count" semantic conventions. It represents the
5041	// number of messages sent, received, or processed in the scope of the
5042	// batching operation.
5043	//
5044	// Type: int
5045	// RequirementLevel: Optional
5046	// Stability: experimental
5047	// Examples: 0, 1, 2
5048	// Note: Instrumentations SHOULD NOT set `messaging.batch.message_count` on
5049	// spans that operate with a single message. When a messaging client
5050	// library supports both batch and single-message API for the same
5051	// operation, instrumentations SHOULD use `messaging.batch.message_count`
5052	// for batching APIs and SHOULD NOT use it for single-message APIs.
5053	MessagingBatchMessageCountKey = attribute.Key("messaging.batch.message_count")
5054
5055	// MessagingClientIDKey is the attribute Key conforming to the
5056	// "messaging.client.id" semantic conventions. It represents a unique
5057	// identifier for the client that consumes or produces a message.
5058	//
5059	// Type: string
5060	// RequirementLevel: Optional
5061	// Stability: experimental
5062	// Examples: 'client-5', 'myhost@8742@s8083jm'
5063	MessagingClientIDKey = attribute.Key("messaging.client.id")
5064
5065	// MessagingDestinationAnonymousKey is the attribute Key conforming to the
5066	// "messaging.destination.anonymous" semantic conventions. It represents a
5067	// boolean that is true if the message destination is anonymous (could be
5068	// unnamed or have auto-generated name).
5069	//
5070	// Type: boolean
5071	// RequirementLevel: Optional
5072	// Stability: experimental
5073	MessagingDestinationAnonymousKey = attribute.Key("messaging.destination.anonymous")
5074
5075	// MessagingDestinationNameKey is the attribute Key conforming to the
5076	// "messaging.destination.name" semantic conventions. It represents the
5077	// message destination name
5078	//
5079	// Type: string
5080	// RequirementLevel: Optional
5081	// Stability: experimental
5082	// Examples: 'MyQueue', 'MyTopic'
5083	// Note: Destination name SHOULD uniquely identify a specific queue, topic
5084	// or other entity within the broker. If
5085	// the broker doesn't have such notion, the destination name SHOULD
5086	// uniquely identify the broker.
5087	MessagingDestinationNameKey = attribute.Key("messaging.destination.name")
5088
5089	// MessagingDestinationPartitionIDKey is the attribute Key conforming to
5090	// the "messaging.destination.partition.id" semantic conventions. It
5091	// represents the identifier of the partition messages are sent to or
5092	// received from, unique within the `messaging.destination.name`.
5093	//
5094	// Type: string
5095	// RequirementLevel: Optional
5096	// Stability: experimental
5097	// Examples: '1'
5098	MessagingDestinationPartitionIDKey = attribute.Key("messaging.destination.partition.id")
5099
5100	// MessagingDestinationTemplateKey is the attribute Key conforming to the
5101	// "messaging.destination.template" semantic conventions. It represents the
5102	// low cardinality representation of the messaging destination name
5103	//
5104	// Type: string
5105	// RequirementLevel: Optional
5106	// Stability: experimental
5107	// Examples: '/customers/{customerID}'
5108	// Note: Destination names could be constructed from templates. An example
5109	// would be a destination name involving a user name or product id.
5110	// Although the destination name in this case is of high cardinality, the
5111	// underlying template is of low cardinality and can be effectively used
5112	// for grouping and aggregation.
5113	MessagingDestinationTemplateKey = attribute.Key("messaging.destination.template")
5114
5115	// MessagingDestinationTemporaryKey is the attribute Key conforming to the
5116	// "messaging.destination.temporary" semantic conventions. It represents a
5117	// boolean that is true if the message destination is temporary and might
5118	// not exist anymore after messages are processed.
5119	//
5120	// Type: boolean
5121	// RequirementLevel: Optional
5122	// Stability: experimental
5123	MessagingDestinationTemporaryKey = attribute.Key("messaging.destination.temporary")
5124
5125	// MessagingDestinationPublishAnonymousKey is the attribute Key conforming
5126	// to the "messaging.destination_publish.anonymous" semantic conventions.
5127	// It represents a boolean that is true if the publish message destination
5128	// is anonymous (could be unnamed or have auto-generated name).
5129	//
5130	// Type: boolean
5131	// RequirementLevel: Optional
5132	// Stability: experimental
5133	MessagingDestinationPublishAnonymousKey = attribute.Key("messaging.destination_publish.anonymous")
5134
5135	// MessagingDestinationPublishNameKey is the attribute Key conforming to
5136	// the "messaging.destination_publish.name" semantic conventions. It
5137	// represents the name of the original destination the message was
5138	// published to
5139	//
5140	// Type: string
5141	// RequirementLevel: Optional
5142	// Stability: experimental
5143	// Examples: 'MyQueue', 'MyTopic'
5144	// Note: The name SHOULD uniquely identify a specific queue, topic, or
5145	// other entity within the broker. If
5146	// the broker doesn't have such notion, the original destination name
5147	// SHOULD uniquely identify the broker.
5148	MessagingDestinationPublishNameKey = attribute.Key("messaging.destination_publish.name")
5149
5150	// MessagingMessageBodySizeKey is the attribute Key conforming to the
5151	// "messaging.message.body.size" semantic conventions. It represents the
5152	// size of the message body in bytes.
5153	//
5154	// Type: int
5155	// RequirementLevel: Optional
5156	// Stability: experimental
5157	// Examples: 1439
5158	// Note: This can refer to both the compressed or uncompressed body size.
5159	// If both sizes are known, the uncompressed
5160	// body size should be used.
5161	MessagingMessageBodySizeKey = attribute.Key("messaging.message.body.size")
5162
5163	// MessagingMessageConversationIDKey is the attribute Key conforming to the
5164	// "messaging.message.conversation_id" semantic conventions. It represents
5165	// the conversation ID identifying the conversation to which the message
5166	// belongs, represented as a string. Sometimes called "Correlation ID".
5167	//
5168	// Type: string
5169	// RequirementLevel: Optional
5170	// Stability: experimental
5171	// Examples: 'MyConversationID'
5172	MessagingMessageConversationIDKey = attribute.Key("messaging.message.conversation_id")
5173
5174	// MessagingMessageEnvelopeSizeKey is the attribute Key conforming to the
5175	// "messaging.message.envelope.size" semantic conventions. It represents
5176	// the size of the message body and metadata in bytes.
5177	//
5178	// Type: int
5179	// RequirementLevel: Optional
5180	// Stability: experimental
5181	// Examples: 2738
5182	// Note: This can refer to both the compressed or uncompressed size. If
5183	// both sizes are known, the uncompressed
5184	// size should be used.
5185	MessagingMessageEnvelopeSizeKey = attribute.Key("messaging.message.envelope.size")
5186
5187	// MessagingMessageIDKey is the attribute Key conforming to the
5188	// "messaging.message.id" semantic conventions. It represents a value used
5189	// by the messaging system as an identifier for the message, represented as
5190	// a string.
5191	//
5192	// Type: string
5193	// RequirementLevel: Optional
5194	// Stability: experimental
5195	// Examples: '452a7c7c7c7048c2f887f61572b18fc2'
5196	MessagingMessageIDKey = attribute.Key("messaging.message.id")
5197
5198	// MessagingOperationNameKey is the attribute Key conforming to the
5199	// "messaging.operation.name" semantic conventions. It represents the
5200	// system-specific name of the messaging operation.
5201	//
5202	// Type: string
5203	// RequirementLevel: Optional
5204	// Stability: experimental
5205	// Examples: 'ack', 'nack', 'send'
5206	MessagingOperationNameKey = attribute.Key("messaging.operation.name")
5207
5208	// MessagingOperationTypeKey is the attribute Key conforming to the
5209	// "messaging.operation.type" semantic conventions. It represents a string
5210	// identifying the type of the messaging operation.
5211	//
5212	// Type: Enum
5213	// RequirementLevel: Optional
5214	// Stability: experimental
5215	// Note: If a custom value is used, it MUST be of low cardinality.
5216	MessagingOperationTypeKey = attribute.Key("messaging.operation.type")
5217
5218	// MessagingSystemKey is the attribute Key conforming to the
5219	// "messaging.system" semantic conventions. It represents the messaging
5220	// system as identified by the client instrumentation.
5221	//
5222	// Type: Enum
5223	// RequirementLevel: Optional
5224	// Stability: experimental
5225	// Note: The actual messaging system may differ from the one known by the
5226	// client. For example, when using Kafka client libraries to communicate
5227	// with Azure Event Hubs, the `messaging.system` is set to `kafka` based on
5228	// the instrumentation's best knowledge.
5229	MessagingSystemKey = attribute.Key("messaging.system")
5230)
5231
5232var (
5233	// One or more messages are provided for publishing to an intermediary. If a single message is published, the context of the "Publish" span can be used as the creation context and no "Create" span needs to be created
5234	MessagingOperationTypePublish = MessagingOperationTypeKey.String("publish")
5235	// A message is created. "Create" spans always refer to a single message and are used to provide a unique creation context for messages in batch publishing scenarios
5236	MessagingOperationTypeCreate = MessagingOperationTypeKey.String("create")
5237	// One or more messages are requested by a consumer. This operation refers to pull-based scenarios, where consumers explicitly call methods of messaging SDKs to receive messages
5238	MessagingOperationTypeReceive = MessagingOperationTypeKey.String("receive")
5239	// One or more messages are delivered to or processed by a consumer
5240	MessagingOperationTypeDeliver = MessagingOperationTypeKey.String("process")
5241	// One or more messages are settled
5242	MessagingOperationTypeSettle = MessagingOperationTypeKey.String("settle")
5243)
5244
5245var (
5246	// Apache ActiveMQ
5247	MessagingSystemActivemq = MessagingSystemKey.String("activemq")
5248	// Amazon Simple Queue Service (SQS)
5249	MessagingSystemAWSSqs = MessagingSystemKey.String("aws_sqs")
5250	// Azure Event Grid
5251	MessagingSystemEventgrid = MessagingSystemKey.String("eventgrid")
5252	// Azure Event Hubs
5253	MessagingSystemEventhubs = MessagingSystemKey.String("eventhubs")
5254	// Azure Service Bus
5255	MessagingSystemServicebus = MessagingSystemKey.String("servicebus")
5256	// Google Cloud Pub/Sub
5257	MessagingSystemGCPPubsub = MessagingSystemKey.String("gcp_pubsub")
5258	// Java Message Service
5259	MessagingSystemJms = MessagingSystemKey.String("jms")
5260	// Apache Kafka
5261	MessagingSystemKafka = MessagingSystemKey.String("kafka")
5262	// RabbitMQ
5263	MessagingSystemRabbitmq = MessagingSystemKey.String("rabbitmq")
5264	// Apache RocketMQ
5265	MessagingSystemRocketmq = MessagingSystemKey.String("rocketmq")
5266)
5267
5268// MessagingBatchMessageCount returns an attribute KeyValue conforming to
5269// the "messaging.batch.message_count" semantic conventions. It represents the
5270// number of messages sent, received, or processed in the scope of the batching
5271// operation.
5272func MessagingBatchMessageCount(val int) attribute.KeyValue {
5273	return MessagingBatchMessageCountKey.Int(val)
5274}
5275
5276// MessagingClientID returns an attribute KeyValue conforming to the
5277// "messaging.client.id" semantic conventions. It represents a unique
5278// identifier for the client that consumes or produces a message.
5279func MessagingClientID(val string) attribute.KeyValue {
5280	return MessagingClientIDKey.String(val)
5281}
5282
5283// MessagingDestinationAnonymous returns an attribute KeyValue conforming to
5284// the "messaging.destination.anonymous" semantic conventions. It represents a
5285// boolean that is true if the message destination is anonymous (could be
5286// unnamed or have auto-generated name).
5287func MessagingDestinationAnonymous(val bool) attribute.KeyValue {
5288	return MessagingDestinationAnonymousKey.Bool(val)
5289}
5290
5291// MessagingDestinationName returns an attribute KeyValue conforming to the
5292// "messaging.destination.name" semantic conventions. It represents the message
5293// destination name
5294func MessagingDestinationName(val string) attribute.KeyValue {
5295	return MessagingDestinationNameKey.String(val)
5296}
5297
5298// MessagingDestinationPartitionID returns an attribute KeyValue conforming
5299// to the "messaging.destination.partition.id" semantic conventions. It
5300// represents the identifier of the partition messages are sent to or received
5301// from, unique within the `messaging.destination.name`.
5302func MessagingDestinationPartitionID(val string) attribute.KeyValue {
5303	return MessagingDestinationPartitionIDKey.String(val)
5304}
5305
5306// MessagingDestinationTemplate returns an attribute KeyValue conforming to
5307// the "messaging.destination.template" semantic conventions. It represents the
5308// low cardinality representation of the messaging destination name
5309func MessagingDestinationTemplate(val string) attribute.KeyValue {
5310	return MessagingDestinationTemplateKey.String(val)
5311}
5312
5313// MessagingDestinationTemporary returns an attribute KeyValue conforming to
5314// the "messaging.destination.temporary" semantic conventions. It represents a
5315// boolean that is true if the message destination is temporary and might not
5316// exist anymore after messages are processed.
5317func MessagingDestinationTemporary(val bool) attribute.KeyValue {
5318	return MessagingDestinationTemporaryKey.Bool(val)
5319}
5320
5321// MessagingDestinationPublishAnonymous returns an attribute KeyValue
5322// conforming to the "messaging.destination_publish.anonymous" semantic
5323// conventions. It represents a boolean that is true if the publish message
5324// destination is anonymous (could be unnamed or have auto-generated name).
5325func MessagingDestinationPublishAnonymous(val bool) attribute.KeyValue {
5326	return MessagingDestinationPublishAnonymousKey.Bool(val)
5327}
5328
5329// MessagingDestinationPublishName returns an attribute KeyValue conforming
5330// to the "messaging.destination_publish.name" semantic conventions. It
5331// represents the name of the original destination the message was published to
5332func MessagingDestinationPublishName(val string) attribute.KeyValue {
5333	return MessagingDestinationPublishNameKey.String(val)
5334}
5335
5336// MessagingMessageBodySize returns an attribute KeyValue conforming to the
5337// "messaging.message.body.size" semantic conventions. It represents the size
5338// of the message body in bytes.
5339func MessagingMessageBodySize(val int) attribute.KeyValue {
5340	return MessagingMessageBodySizeKey.Int(val)
5341}
5342
5343// MessagingMessageConversationID returns an attribute KeyValue conforming
5344// to the "messaging.message.conversation_id" semantic conventions. It
5345// represents the conversation ID identifying the conversation to which the
5346// message belongs, represented as a string. Sometimes called "Correlation ID".
5347func MessagingMessageConversationID(val string) attribute.KeyValue {
5348	return MessagingMessageConversationIDKey.String(val)
5349}
5350
5351// MessagingMessageEnvelopeSize returns an attribute KeyValue conforming to
5352// the "messaging.message.envelope.size" semantic conventions. It represents
5353// the size of the message body and metadata in bytes.
5354func MessagingMessageEnvelopeSize(val int) attribute.KeyValue {
5355	return MessagingMessageEnvelopeSizeKey.Int(val)
5356}
5357
5358// MessagingMessageID returns an attribute KeyValue conforming to the
5359// "messaging.message.id" semantic conventions. It represents a value used by
5360// the messaging system as an identifier for the message, represented as a
5361// string.
5362func MessagingMessageID(val string) attribute.KeyValue {
5363	return MessagingMessageIDKey.String(val)
5364}
5365
5366// MessagingOperationName returns an attribute KeyValue conforming to the
5367// "messaging.operation.name" semantic conventions. It represents the
5368// system-specific name of the messaging operation.
5369func MessagingOperationName(val string) attribute.KeyValue {
5370	return MessagingOperationNameKey.String(val)
5371}
5372
5373// This group describes attributes specific to Apache Kafka.
5374const (
5375	// MessagingKafkaConsumerGroupKey is the attribute Key conforming to the
5376	// "messaging.kafka.consumer.group" semantic conventions. It represents the
5377	// name of the Kafka Consumer Group that is handling the message. Only
5378	// applies to consumers, not producers.
5379	//
5380	// Type: string
5381	// RequirementLevel: Optional
5382	// Stability: experimental
5383	// Examples: 'my-group'
5384	MessagingKafkaConsumerGroupKey = attribute.Key("messaging.kafka.consumer.group")
5385
5386	// MessagingKafkaMessageKeyKey is the attribute Key conforming to the
5387	// "messaging.kafka.message.key" semantic conventions. It represents the
5388	// message keys in Kafka are used for grouping alike messages to ensure
5389	// they're processed on the same partition. They differ from
5390	// `messaging.message.id` in that they're not unique. If the key is `null`,
5391	// the attribute MUST NOT be set.
5392	//
5393	// Type: string
5394	// RequirementLevel: Optional
5395	// Stability: experimental
5396	// Examples: 'myKey'
5397	// Note: If the key type is not string, it's string representation has to
5398	// be supplied for the attribute. If the key has no unambiguous, canonical
5399	// string form, don't include its value.
5400	MessagingKafkaMessageKeyKey = attribute.Key("messaging.kafka.message.key")
5401
5402	// MessagingKafkaMessageOffsetKey is the attribute Key conforming to the
5403	// "messaging.kafka.message.offset" semantic conventions. It represents the
5404	// offset of a record in the corresponding Kafka partition.
5405	//
5406	// Type: int
5407	// RequirementLevel: Optional
5408	// Stability: experimental
5409	// Examples: 42
5410	MessagingKafkaMessageOffsetKey = attribute.Key("messaging.kafka.message.offset")
5411
5412	// MessagingKafkaMessageTombstoneKey is the attribute Key conforming to the
5413	// "messaging.kafka.message.tombstone" semantic conventions. It represents
5414	// a boolean that is true if the message is a tombstone.
5415	//
5416	// Type: boolean
5417	// RequirementLevel: Optional
5418	// Stability: experimental
5419	MessagingKafkaMessageTombstoneKey = attribute.Key("messaging.kafka.message.tombstone")
5420)
5421
5422// MessagingKafkaConsumerGroup returns an attribute KeyValue conforming to
5423// the "messaging.kafka.consumer.group" semantic conventions. It represents the
5424// name of the Kafka Consumer Group that is handling the message. Only applies
5425// to consumers, not producers.
5426func MessagingKafkaConsumerGroup(val string) attribute.KeyValue {
5427	return MessagingKafkaConsumerGroupKey.String(val)
5428}
5429
5430// MessagingKafkaMessageKey returns an attribute KeyValue conforming to the
5431// "messaging.kafka.message.key" semantic conventions. It represents the
5432// message keys in Kafka are used for grouping alike messages to ensure they're
5433// processed on the same partition. They differ from `messaging.message.id` in
5434// that they're not unique. If the key is `null`, the attribute MUST NOT be
5435// set.
5436func MessagingKafkaMessageKey(val string) attribute.KeyValue {
5437	return MessagingKafkaMessageKeyKey.String(val)
5438}
5439
5440// MessagingKafkaMessageOffset returns an attribute KeyValue conforming to
5441// the "messaging.kafka.message.offset" semantic conventions. It represents the
5442// offset of a record in the corresponding Kafka partition.
5443func MessagingKafkaMessageOffset(val int) attribute.KeyValue {
5444	return MessagingKafkaMessageOffsetKey.Int(val)
5445}
5446
5447// MessagingKafkaMessageTombstone returns an attribute KeyValue conforming
5448// to the "messaging.kafka.message.tombstone" semantic conventions. It
5449// represents a boolean that is true if the message is a tombstone.
5450func MessagingKafkaMessageTombstone(val bool) attribute.KeyValue {
5451	return MessagingKafkaMessageTombstoneKey.Bool(val)
5452}
5453
5454// This group describes attributes specific to RabbitMQ.
5455const (
5456	// MessagingRabbitmqDestinationRoutingKeyKey is the attribute Key
5457	// conforming to the "messaging.rabbitmq.destination.routing_key" semantic
5458	// conventions. It represents the rabbitMQ message routing key.
5459	//
5460	// Type: string
5461	// RequirementLevel: Optional
5462	// Stability: experimental
5463	// Examples: 'myKey'
5464	MessagingRabbitmqDestinationRoutingKeyKey = attribute.Key("messaging.rabbitmq.destination.routing_key")
5465
5466	// MessagingRabbitmqMessageDeliveryTagKey is the attribute Key conforming
5467	// to the "messaging.rabbitmq.message.delivery_tag" semantic conventions.
5468	// It represents the rabbitMQ message delivery tag
5469	//
5470	// Type: int
5471	// RequirementLevel: Optional
5472	// Stability: experimental
5473	// Examples: 123
5474	MessagingRabbitmqMessageDeliveryTagKey = attribute.Key("messaging.rabbitmq.message.delivery_tag")
5475)
5476
5477// MessagingRabbitmqDestinationRoutingKey returns an attribute KeyValue
5478// conforming to the "messaging.rabbitmq.destination.routing_key" semantic
5479// conventions. It represents the rabbitMQ message routing key.
5480func MessagingRabbitmqDestinationRoutingKey(val string) attribute.KeyValue {
5481	return MessagingRabbitmqDestinationRoutingKeyKey.String(val)
5482}
5483
5484// MessagingRabbitmqMessageDeliveryTag returns an attribute KeyValue
5485// conforming to the "messaging.rabbitmq.message.delivery_tag" semantic
5486// conventions. It represents the rabbitMQ message delivery tag
5487func MessagingRabbitmqMessageDeliveryTag(val int) attribute.KeyValue {
5488	return MessagingRabbitmqMessageDeliveryTagKey.Int(val)
5489}
5490
5491// This group describes attributes specific to RocketMQ.
5492const (
5493	// MessagingRocketmqClientGroupKey is the attribute Key conforming to the
5494	// "messaging.rocketmq.client_group" semantic conventions. It represents
5495	// the name of the RocketMQ producer/consumer group that is handling the
5496	// message. The client type is identified by the SpanKind.
5497	//
5498	// Type: string
5499	// RequirementLevel: Optional
5500	// Stability: experimental
5501	// Examples: 'myConsumerGroup'
5502	MessagingRocketmqClientGroupKey = attribute.Key("messaging.rocketmq.client_group")
5503
5504	// MessagingRocketmqConsumptionModelKey is the attribute Key conforming to
5505	// the "messaging.rocketmq.consumption_model" semantic conventions. It
5506	// represents the model of message consumption. This only applies to
5507	// consumer spans.
5508	//
5509	// Type: Enum
5510	// RequirementLevel: Optional
5511	// Stability: experimental
5512	MessagingRocketmqConsumptionModelKey = attribute.Key("messaging.rocketmq.consumption_model")
5513
5514	// MessagingRocketmqMessageDelayTimeLevelKey is the attribute Key
5515	// conforming to the "messaging.rocketmq.message.delay_time_level" semantic
5516	// conventions. It represents the delay time level for delay message, which
5517	// determines the message delay time.
5518	//
5519	// Type: int
5520	// RequirementLevel: Optional
5521	// Stability: experimental
5522	// Examples: 3
5523	MessagingRocketmqMessageDelayTimeLevelKey = attribute.Key("messaging.rocketmq.message.delay_time_level")
5524
5525	// MessagingRocketmqMessageDeliveryTimestampKey is the attribute Key
5526	// conforming to the "messaging.rocketmq.message.delivery_timestamp"
5527	// semantic conventions. It represents the timestamp in milliseconds that
5528	// the delay message is expected to be delivered to consumer.
5529	//
5530	// Type: int
5531	// RequirementLevel: Optional
5532	// Stability: experimental
5533	// Examples: 1665987217045
5534	MessagingRocketmqMessageDeliveryTimestampKey = attribute.Key("messaging.rocketmq.message.delivery_timestamp")
5535
5536	// MessagingRocketmqMessageGroupKey is the attribute Key conforming to the
5537	// "messaging.rocketmq.message.group" semantic conventions. It represents
5538	// the it is essential for FIFO message. Messages that belong to the same
5539	// message group are always processed one by one within the same consumer
5540	// group.
5541	//
5542	// Type: string
5543	// RequirementLevel: Optional
5544	// Stability: experimental
5545	// Examples: 'myMessageGroup'
5546	MessagingRocketmqMessageGroupKey = attribute.Key("messaging.rocketmq.message.group")
5547
5548	// MessagingRocketmqMessageKeysKey is the attribute Key conforming to the
5549	// "messaging.rocketmq.message.keys" semantic conventions. It represents
5550	// the key(s) of message, another way to mark message besides message id.
5551	//
5552	// Type: string[]
5553	// RequirementLevel: Optional
5554	// Stability: experimental
5555	// Examples: 'keyA', 'keyB'
5556	MessagingRocketmqMessageKeysKey = attribute.Key("messaging.rocketmq.message.keys")
5557
5558	// MessagingRocketmqMessageTagKey is the attribute Key conforming to the
5559	// "messaging.rocketmq.message.tag" semantic conventions. It represents the
5560	// secondary classifier of message besides topic.
5561	//
5562	// Type: string
5563	// RequirementLevel: Optional
5564	// Stability: experimental
5565	// Examples: 'tagA'
5566	MessagingRocketmqMessageTagKey = attribute.Key("messaging.rocketmq.message.tag")
5567
5568	// MessagingRocketmqMessageTypeKey is the attribute Key conforming to the
5569	// "messaging.rocketmq.message.type" semantic conventions. It represents
5570	// the type of message.
5571	//
5572	// Type: Enum
5573	// RequirementLevel: Optional
5574	// Stability: experimental
5575	MessagingRocketmqMessageTypeKey = attribute.Key("messaging.rocketmq.message.type")
5576
5577	// MessagingRocketmqNamespaceKey is the attribute Key conforming to the
5578	// "messaging.rocketmq.namespace" semantic conventions. It represents the
5579	// namespace of RocketMQ resources, resources in different namespaces are
5580	// individual.
5581	//
5582	// Type: string
5583	// RequirementLevel: Optional
5584	// Stability: experimental
5585	// Examples: 'myNamespace'
5586	MessagingRocketmqNamespaceKey = attribute.Key("messaging.rocketmq.namespace")
5587)
5588
5589var (
5590	// Clustering consumption model
5591	MessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String("clustering")
5592	// Broadcasting consumption model
5593	MessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String("broadcasting")
5594)
5595
5596var (
5597	// Normal message
5598	MessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String("normal")
5599	// FIFO message
5600	MessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String("fifo")
5601	// Delay message
5602	MessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String("delay")
5603	// Transaction message
5604	MessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String("transaction")
5605)
5606
5607// MessagingRocketmqClientGroup returns an attribute KeyValue conforming to
5608// the "messaging.rocketmq.client_group" semantic conventions. It represents
5609// the name of the RocketMQ producer/consumer group that is handling the
5610// message. The client type is identified by the SpanKind.
5611func MessagingRocketmqClientGroup(val string) attribute.KeyValue {
5612	return MessagingRocketmqClientGroupKey.String(val)
5613}
5614
5615// MessagingRocketmqMessageDelayTimeLevel returns an attribute KeyValue
5616// conforming to the "messaging.rocketmq.message.delay_time_level" semantic
5617// conventions. It represents the delay time level for delay message, which
5618// determines the message delay time.
5619func MessagingRocketmqMessageDelayTimeLevel(val int) attribute.KeyValue {
5620	return MessagingRocketmqMessageDelayTimeLevelKey.Int(val)
5621}
5622
5623// MessagingRocketmqMessageDeliveryTimestamp returns an attribute KeyValue
5624// conforming to the "messaging.rocketmq.message.delivery_timestamp" semantic
5625// conventions. It represents the timestamp in milliseconds that the delay
5626// message is expected to be delivered to consumer.
5627func MessagingRocketmqMessageDeliveryTimestamp(val int) attribute.KeyValue {
5628	return MessagingRocketmqMessageDeliveryTimestampKey.Int(val)
5629}
5630
5631// MessagingRocketmqMessageGroup returns an attribute KeyValue conforming to
5632// the "messaging.rocketmq.message.group" semantic conventions. It represents
5633// the it is essential for FIFO message. Messages that belong to the same
5634// message group are always processed one by one within the same consumer
5635// group.
5636func MessagingRocketmqMessageGroup(val string) attribute.KeyValue {
5637	return MessagingRocketmqMessageGroupKey.String(val)
5638}
5639
5640// MessagingRocketmqMessageKeys returns an attribute KeyValue conforming to
5641// the "messaging.rocketmq.message.keys" semantic conventions. It represents
5642// the key(s) of message, another way to mark message besides message id.
5643func MessagingRocketmqMessageKeys(val ...string) attribute.KeyValue {
5644	return MessagingRocketmqMessageKeysKey.StringSlice(val)
5645}
5646
5647// MessagingRocketmqMessageTag returns an attribute KeyValue conforming to
5648// the "messaging.rocketmq.message.tag" semantic conventions. It represents the
5649// secondary classifier of message besides topic.
5650func MessagingRocketmqMessageTag(val string) attribute.KeyValue {
5651	return MessagingRocketmqMessageTagKey.String(val)
5652}
5653
5654// MessagingRocketmqNamespace returns an attribute KeyValue conforming to
5655// the "messaging.rocketmq.namespace" semantic conventions. It represents the
5656// namespace of RocketMQ resources, resources in different namespaces are
5657// individual.
5658func MessagingRocketmqNamespace(val string) attribute.KeyValue {
5659	return MessagingRocketmqNamespaceKey.String(val)
5660}
5661
5662// This group describes attributes specific to GCP Pub/Sub.
5663const (
5664	// MessagingGCPPubsubMessageAckDeadlineKey is the attribute Key conforming
5665	// to the "messaging.gcp_pubsub.message.ack_deadline" semantic conventions.
5666	// It represents the ack deadline in seconds set for the modify ack
5667	// deadline request.
5668	//
5669	// Type: int
5670	// RequirementLevel: Optional
5671	// Stability: experimental
5672	// Examples: 10
5673	MessagingGCPPubsubMessageAckDeadlineKey = attribute.Key("messaging.gcp_pubsub.message.ack_deadline")
5674
5675	// MessagingGCPPubsubMessageAckIDKey is the attribute Key conforming to the
5676	// "messaging.gcp_pubsub.message.ack_id" semantic conventions. It
5677	// represents the ack id for a given message.
5678	//
5679	// Type: string
5680	// RequirementLevel: Optional
5681	// Stability: experimental
5682	// Examples: 'ack_id'
5683	MessagingGCPPubsubMessageAckIDKey = attribute.Key("messaging.gcp_pubsub.message.ack_id")
5684
5685	// MessagingGCPPubsubMessageDeliveryAttemptKey is the attribute Key
5686	// conforming to the "messaging.gcp_pubsub.message.delivery_attempt"
5687	// semantic conventions. It represents the delivery attempt for a given
5688	// message.
5689	//
5690	// Type: int
5691	// RequirementLevel: Optional
5692	// Stability: experimental
5693	// Examples: 2
5694	MessagingGCPPubsubMessageDeliveryAttemptKey = attribute.Key("messaging.gcp_pubsub.message.delivery_attempt")
5695
5696	// MessagingGCPPubsubMessageOrderingKeyKey is the attribute Key conforming
5697	// to the "messaging.gcp_pubsub.message.ordering_key" semantic conventions.
5698	// It represents the ordering key for a given message. If the attribute is
5699	// not present, the message does not have an ordering key.
5700	//
5701	// Type: string
5702	// RequirementLevel: Optional
5703	// Stability: experimental
5704	// Examples: 'ordering_key'
5705	MessagingGCPPubsubMessageOrderingKeyKey = attribute.Key("messaging.gcp_pubsub.message.ordering_key")
5706)
5707
5708// MessagingGCPPubsubMessageAckDeadline returns an attribute KeyValue
5709// conforming to the "messaging.gcp_pubsub.message.ack_deadline" semantic
5710// conventions. It represents the ack deadline in seconds set for the modify
5711// ack deadline request.
5712func MessagingGCPPubsubMessageAckDeadline(val int) attribute.KeyValue {
5713	return MessagingGCPPubsubMessageAckDeadlineKey.Int(val)
5714}
5715
5716// MessagingGCPPubsubMessageAckID returns an attribute KeyValue conforming
5717// to the "messaging.gcp_pubsub.message.ack_id" semantic conventions. It
5718// represents the ack id for a given message.
5719func MessagingGCPPubsubMessageAckID(val string) attribute.KeyValue {
5720	return MessagingGCPPubsubMessageAckIDKey.String(val)
5721}
5722
5723// MessagingGCPPubsubMessageDeliveryAttempt returns an attribute KeyValue
5724// conforming to the "messaging.gcp_pubsub.message.delivery_attempt" semantic
5725// conventions. It represents the delivery attempt for a given message.
5726func MessagingGCPPubsubMessageDeliveryAttempt(val int) attribute.KeyValue {
5727	return MessagingGCPPubsubMessageDeliveryAttemptKey.Int(val)
5728}
5729
5730// MessagingGCPPubsubMessageOrderingKey returns an attribute KeyValue
5731// conforming to the "messaging.gcp_pubsub.message.ordering_key" semantic
5732// conventions. It represents the ordering key for a given message. If the
5733// attribute is not present, the message does not have an ordering key.
5734func MessagingGCPPubsubMessageOrderingKey(val string) attribute.KeyValue {
5735	return MessagingGCPPubsubMessageOrderingKeyKey.String(val)
5736}
5737
5738// This group describes attributes specific to Azure Service Bus.
5739const (
5740	// MessagingServicebusDestinationSubscriptionNameKey is the attribute Key
5741	// conforming to the "messaging.servicebus.destination.subscription_name"
5742	// semantic conventions. It represents the name of the subscription in the
5743	// topic messages are received from.
5744	//
5745	// Type: string
5746	// RequirementLevel: Optional
5747	// Stability: experimental
5748	// Examples: 'mySubscription'
5749	MessagingServicebusDestinationSubscriptionNameKey = attribute.Key("messaging.servicebus.destination.subscription_name")
5750
5751	// MessagingServicebusDispositionStatusKey is the attribute Key conforming
5752	// to the "messaging.servicebus.disposition_status" semantic conventions.
5753	// It represents the describes the [settlement
5754	// type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock).
5755	//
5756	// Type: Enum
5757	// RequirementLevel: Optional
5758	// Stability: experimental
5759	MessagingServicebusDispositionStatusKey = attribute.Key("messaging.servicebus.disposition_status")
5760
5761	// MessagingServicebusMessageDeliveryCountKey is the attribute Key
5762	// conforming to the "messaging.servicebus.message.delivery_count" semantic
5763	// conventions. It represents the number of deliveries that have been
5764	// attempted for this message.
5765	//
5766	// Type: int
5767	// RequirementLevel: Optional
5768	// Stability: experimental
5769	// Examples: 2
5770	MessagingServicebusMessageDeliveryCountKey = attribute.Key("messaging.servicebus.message.delivery_count")
5771
5772	// MessagingServicebusMessageEnqueuedTimeKey is the attribute Key
5773	// conforming to the "messaging.servicebus.message.enqueued_time" semantic
5774	// conventions. It represents the UTC epoch seconds at which the message
5775	// has been accepted and stored in the entity.
5776	//
5777	// Type: int
5778	// RequirementLevel: Optional
5779	// Stability: experimental
5780	// Examples: 1701393730
5781	MessagingServicebusMessageEnqueuedTimeKey = attribute.Key("messaging.servicebus.message.enqueued_time")
5782)
5783
5784var (
5785	// Message is completed
5786	MessagingServicebusDispositionStatusComplete = MessagingServicebusDispositionStatusKey.String("complete")
5787	// Message is abandoned
5788	MessagingServicebusDispositionStatusAbandon = MessagingServicebusDispositionStatusKey.String("abandon")
5789	// Message is sent to dead letter queue
5790	MessagingServicebusDispositionStatusDeadLetter = MessagingServicebusDispositionStatusKey.String("dead_letter")
5791	// Message is deferred
5792	MessagingServicebusDispositionStatusDefer = MessagingServicebusDispositionStatusKey.String("defer")
5793)
5794
5795// MessagingServicebusDestinationSubscriptionName returns an attribute
5796// KeyValue conforming to the
5797// "messaging.servicebus.destination.subscription_name" semantic conventions.
5798// It represents the name of the subscription in the topic messages are
5799// received from.
5800func MessagingServicebusDestinationSubscriptionName(val string) attribute.KeyValue {
5801	return MessagingServicebusDestinationSubscriptionNameKey.String(val)
5802}
5803
5804// MessagingServicebusMessageDeliveryCount returns an attribute KeyValue
5805// conforming to the "messaging.servicebus.message.delivery_count" semantic
5806// conventions. It represents the number of deliveries that have been attempted
5807// for this message.
5808func MessagingServicebusMessageDeliveryCount(val int) attribute.KeyValue {
5809	return MessagingServicebusMessageDeliveryCountKey.Int(val)
5810}
5811
5812// MessagingServicebusMessageEnqueuedTime returns an attribute KeyValue
5813// conforming to the "messaging.servicebus.message.enqueued_time" semantic
5814// conventions. It represents the UTC epoch seconds at which the message has
5815// been accepted and stored in the entity.
5816func MessagingServicebusMessageEnqueuedTime(val int) attribute.KeyValue {
5817	return MessagingServicebusMessageEnqueuedTimeKey.Int(val)
5818}
5819
5820// This group describes attributes specific to Azure Event Hubs.
5821const (
5822	// MessagingEventhubsConsumerGroupKey is the attribute Key conforming to
5823	// the "messaging.eventhubs.consumer.group" semantic conventions. It
5824	// represents the name of the consumer group the event consumer is
5825	// associated with.
5826	//
5827	// Type: string
5828	// RequirementLevel: Optional
5829	// Stability: experimental
5830	// Examples: 'indexer'
5831	MessagingEventhubsConsumerGroupKey = attribute.Key("messaging.eventhubs.consumer.group")
5832
5833	// MessagingEventhubsMessageEnqueuedTimeKey is the attribute Key conforming
5834	// to the "messaging.eventhubs.message.enqueued_time" semantic conventions.
5835	// It represents the UTC epoch seconds at which the message has been
5836	// accepted and stored in the entity.
5837	//
5838	// Type: int
5839	// RequirementLevel: Optional
5840	// Stability: experimental
5841	// Examples: 1701393730
5842	MessagingEventhubsMessageEnqueuedTimeKey = attribute.Key("messaging.eventhubs.message.enqueued_time")
5843)
5844
5845// MessagingEventhubsConsumerGroup returns an attribute KeyValue conforming
5846// to the "messaging.eventhubs.consumer.group" semantic conventions. It
5847// represents the name of the consumer group the event consumer is associated
5848// with.
5849func MessagingEventhubsConsumerGroup(val string) attribute.KeyValue {
5850	return MessagingEventhubsConsumerGroupKey.String(val)
5851}
5852
5853// MessagingEventhubsMessageEnqueuedTime returns an attribute KeyValue
5854// conforming to the "messaging.eventhubs.message.enqueued_time" semantic
5855// conventions. It represents the UTC epoch seconds at which the message has
5856// been accepted and stored in the entity.
5857func MessagingEventhubsMessageEnqueuedTime(val int) attribute.KeyValue {
5858	return MessagingEventhubsMessageEnqueuedTimeKey.Int(val)
5859}
5860
5861// These attributes may be used for any network related operation.
5862const (
5863	// NetworkCarrierIccKey is the attribute Key conforming to the
5864	// "network.carrier.icc" semantic conventions. It represents the ISO 3166-1
5865	// alpha-2 2-character country code associated with the mobile carrier
5866	// network.
5867	//
5868	// Type: string
5869	// RequirementLevel: Optional
5870	// Stability: experimental
5871	// Examples: 'DE'
5872	NetworkCarrierIccKey = attribute.Key("network.carrier.icc")
5873
5874	// NetworkCarrierMccKey is the attribute Key conforming to the
5875	// "network.carrier.mcc" semantic conventions. It represents the mobile
5876	// carrier country code.
5877	//
5878	// Type: string
5879	// RequirementLevel: Optional
5880	// Stability: experimental
5881	// Examples: '310'
5882	NetworkCarrierMccKey = attribute.Key("network.carrier.mcc")
5883
5884	// NetworkCarrierMncKey is the attribute Key conforming to the
5885	// "network.carrier.mnc" semantic conventions. It represents the mobile
5886	// carrier network code.
5887	//
5888	// Type: string
5889	// RequirementLevel: Optional
5890	// Stability: experimental
5891	// Examples: '001'
5892	NetworkCarrierMncKey = attribute.Key("network.carrier.mnc")
5893
5894	// NetworkCarrierNameKey is the attribute Key conforming to the
5895	// "network.carrier.name" semantic conventions. It represents the name of
5896	// the mobile carrier.
5897	//
5898	// Type: string
5899	// RequirementLevel: Optional
5900	// Stability: experimental
5901	// Examples: 'sprint'
5902	NetworkCarrierNameKey = attribute.Key("network.carrier.name")
5903
5904	// NetworkConnectionSubtypeKey is the attribute Key conforming to the
5905	// "network.connection.subtype" semantic conventions. It represents the
5906	// this describes more details regarding the connection.type. It may be the
5907	// type of cell technology connection, but it could be used for describing
5908	// details about a wifi connection.
5909	//
5910	// Type: Enum
5911	// RequirementLevel: Optional
5912	// Stability: experimental
5913	// Examples: 'LTE'
5914	NetworkConnectionSubtypeKey = attribute.Key("network.connection.subtype")
5915
5916	// NetworkConnectionTypeKey is the attribute Key conforming to the
5917	// "network.connection.type" semantic conventions. It represents the
5918	// internet connection type.
5919	//
5920	// Type: Enum
5921	// RequirementLevel: Optional
5922	// Stability: experimental
5923	// Examples: 'wifi'
5924	NetworkConnectionTypeKey = attribute.Key("network.connection.type")
5925
5926	// NetworkIoDirectionKey is the attribute Key conforming to the
5927	// "network.io.direction" semantic conventions. It represents the network
5928	// IO operation direction.
5929	//
5930	// Type: Enum
5931	// RequirementLevel: Optional
5932	// Stability: experimental
5933	// Examples: 'transmit'
5934	NetworkIoDirectionKey = attribute.Key("network.io.direction")
5935
5936	// NetworkLocalAddressKey is the attribute Key conforming to the
5937	// "network.local.address" semantic conventions. It represents the local
5938	// address of the network connection - IP address or Unix domain socket
5939	// name.
5940	//
5941	// Type: string
5942	// RequirementLevel: Optional
5943	// Stability: stable
5944	// Examples: '10.1.2.80', '/tmp/my.sock'
5945	NetworkLocalAddressKey = attribute.Key("network.local.address")
5946
5947	// NetworkLocalPortKey is the attribute Key conforming to the
5948	// "network.local.port" semantic conventions. It represents the local port
5949	// number of the network connection.
5950	//
5951	// Type: int
5952	// RequirementLevel: Optional
5953	// Stability: stable
5954	// Examples: 65123
5955	NetworkLocalPortKey = attribute.Key("network.local.port")
5956
5957	// NetworkPeerAddressKey is the attribute Key conforming to the
5958	// "network.peer.address" semantic conventions. It represents the peer
5959	// address of the network connection - IP address or Unix domain socket
5960	// name.
5961	//
5962	// Type: string
5963	// RequirementLevel: Optional
5964	// Stability: stable
5965	// Examples: '10.1.2.80', '/tmp/my.sock'
5966	NetworkPeerAddressKey = attribute.Key("network.peer.address")
5967
5968	// NetworkPeerPortKey is the attribute Key conforming to the
5969	// "network.peer.port" semantic conventions. It represents the peer port
5970	// number of the network connection.
5971	//
5972	// Type: int
5973	// RequirementLevel: Optional
5974	// Stability: stable
5975	// Examples: 65123
5976	NetworkPeerPortKey = attribute.Key("network.peer.port")
5977
5978	// NetworkProtocolNameKey is the attribute Key conforming to the
5979	// "network.protocol.name" semantic conventions. It represents the [OSI
5980	// application layer](https://osi-model.com/application-layer/) or non-OSI
5981	// equivalent.
5982	//
5983	// Type: string
5984	// RequirementLevel: Optional
5985	// Stability: stable
5986	// Examples: 'amqp', 'http', 'mqtt'
5987	// Note: The value SHOULD be normalized to lowercase.
5988	NetworkProtocolNameKey = attribute.Key("network.protocol.name")
5989
5990	// NetworkProtocolVersionKey is the attribute Key conforming to the
5991	// "network.protocol.version" semantic conventions. It represents the
5992	// actual version of the protocol used for network communication.
5993	//
5994	// Type: string
5995	// RequirementLevel: Optional
5996	// Stability: stable
5997	// Examples: '1.1', '2'
5998	// Note: If protocol version is subject to negotiation (for example using
5999	// [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute
6000	// SHOULD be set to the negotiated version. If the actual protocol version
6001	// is not known, this attribute SHOULD NOT be set.
6002	NetworkProtocolVersionKey = attribute.Key("network.protocol.version")
6003
6004	// NetworkTransportKey is the attribute Key conforming to the
6005	// "network.transport" semantic conventions. It represents the [OSI
6006	// transport layer](https://osi-model.com/transport-layer/) or
6007	// [inter-process communication
6008	// method](https://wikipedia.org/wiki/Inter-process_communication).
6009	//
6010	// Type: Enum
6011	// RequirementLevel: Optional
6012	// Stability: stable
6013	// Examples: 'tcp', 'udp'
6014	// Note: The value SHOULD be normalized to lowercase.
6015	//
6016	// Consider always setting the transport when setting a port number, since
6017	// a port number is ambiguous without knowing the transport. For example
6018	// different processes could be listening on TCP port 12345 and UDP port
6019	// 12345.
6020	NetworkTransportKey = attribute.Key("network.transport")
6021
6022	// NetworkTypeKey is the attribute Key conforming to the "network.type"
6023	// semantic conventions. It represents the [OSI network
6024	// layer](https://osi-model.com/network-layer/) or non-OSI equivalent.
6025	//
6026	// Type: Enum
6027	// RequirementLevel: Optional
6028	// Stability: stable
6029	// Examples: 'ipv4', 'ipv6'
6030	// Note: The value SHOULD be normalized to lowercase.
6031	NetworkTypeKey = attribute.Key("network.type")
6032)
6033
6034var (
6035	// GPRS
6036	NetworkConnectionSubtypeGprs = NetworkConnectionSubtypeKey.String("gprs")
6037	// EDGE
6038	NetworkConnectionSubtypeEdge = NetworkConnectionSubtypeKey.String("edge")
6039	// UMTS
6040	NetworkConnectionSubtypeUmts = NetworkConnectionSubtypeKey.String("umts")
6041	// CDMA
6042	NetworkConnectionSubtypeCdma = NetworkConnectionSubtypeKey.String("cdma")
6043	// EVDO Rel. 0
6044	NetworkConnectionSubtypeEvdo0 = NetworkConnectionSubtypeKey.String("evdo_0")
6045	// EVDO Rev. A
6046	NetworkConnectionSubtypeEvdoA = NetworkConnectionSubtypeKey.String("evdo_a")
6047	// CDMA2000 1XRTT
6048	NetworkConnectionSubtypeCdma20001xrtt = NetworkConnectionSubtypeKey.String("cdma2000_1xrtt")
6049	// HSDPA
6050	NetworkConnectionSubtypeHsdpa = NetworkConnectionSubtypeKey.String("hsdpa")
6051	// HSUPA
6052	NetworkConnectionSubtypeHsupa = NetworkConnectionSubtypeKey.String("hsupa")
6053	// HSPA
6054	NetworkConnectionSubtypeHspa = NetworkConnectionSubtypeKey.String("hspa")
6055	// IDEN
6056	NetworkConnectionSubtypeIden = NetworkConnectionSubtypeKey.String("iden")
6057	// EVDO Rev. B
6058	NetworkConnectionSubtypeEvdoB = NetworkConnectionSubtypeKey.String("evdo_b")
6059	// LTE
6060	NetworkConnectionSubtypeLte = NetworkConnectionSubtypeKey.String("lte")
6061	// EHRPD
6062	NetworkConnectionSubtypeEhrpd = NetworkConnectionSubtypeKey.String("ehrpd")
6063	// HSPAP
6064	NetworkConnectionSubtypeHspap = NetworkConnectionSubtypeKey.String("hspap")
6065	// GSM
6066	NetworkConnectionSubtypeGsm = NetworkConnectionSubtypeKey.String("gsm")
6067	// TD-SCDMA
6068	NetworkConnectionSubtypeTdScdma = NetworkConnectionSubtypeKey.String("td_scdma")
6069	// IWLAN
6070	NetworkConnectionSubtypeIwlan = NetworkConnectionSubtypeKey.String("iwlan")
6071	// 5G NR (New Radio)
6072	NetworkConnectionSubtypeNr = NetworkConnectionSubtypeKey.String("nr")
6073	// 5G NRNSA (New Radio Non-Standalone)
6074	NetworkConnectionSubtypeNrnsa = NetworkConnectionSubtypeKey.String("nrnsa")
6075	// LTE CA
6076	NetworkConnectionSubtypeLteCa = NetworkConnectionSubtypeKey.String("lte_ca")
6077)
6078
6079var (
6080	// wifi
6081	NetworkConnectionTypeWifi = NetworkConnectionTypeKey.String("wifi")
6082	// wired
6083	NetworkConnectionTypeWired = NetworkConnectionTypeKey.String("wired")
6084	// cell
6085	NetworkConnectionTypeCell = NetworkConnectionTypeKey.String("cell")
6086	// unavailable
6087	NetworkConnectionTypeUnavailable = NetworkConnectionTypeKey.String("unavailable")
6088	// unknown
6089	NetworkConnectionTypeUnknown = NetworkConnectionTypeKey.String("unknown")
6090)
6091
6092var (
6093	// transmit
6094	NetworkIoDirectionTransmit = NetworkIoDirectionKey.String("transmit")
6095	// receive
6096	NetworkIoDirectionReceive = NetworkIoDirectionKey.String("receive")
6097)
6098
6099var (
6100	// TCP
6101	NetworkTransportTCP = NetworkTransportKey.String("tcp")
6102	// UDP
6103	NetworkTransportUDP = NetworkTransportKey.String("udp")
6104	// Named or anonymous pipe
6105	NetworkTransportPipe = NetworkTransportKey.String("pipe")
6106	// Unix domain socket
6107	NetworkTransportUnix = NetworkTransportKey.String("unix")
6108)
6109
6110var (
6111	// IPv4
6112	NetworkTypeIpv4 = NetworkTypeKey.String("ipv4")
6113	// IPv6
6114	NetworkTypeIpv6 = NetworkTypeKey.String("ipv6")
6115)
6116
6117// NetworkCarrierIcc returns an attribute KeyValue conforming to the
6118// "network.carrier.icc" semantic conventions. It represents the ISO 3166-1
6119// alpha-2 2-character country code associated with the mobile carrier network.
6120func NetworkCarrierIcc(val string) attribute.KeyValue {
6121	return NetworkCarrierIccKey.String(val)
6122}
6123
6124// NetworkCarrierMcc returns an attribute KeyValue conforming to the
6125// "network.carrier.mcc" semantic conventions. It represents the mobile carrier
6126// country code.
6127func NetworkCarrierMcc(val string) attribute.KeyValue {
6128	return NetworkCarrierMccKey.String(val)
6129}
6130
6131// NetworkCarrierMnc returns an attribute KeyValue conforming to the
6132// "network.carrier.mnc" semantic conventions. It represents the mobile carrier
6133// network code.
6134func NetworkCarrierMnc(val string) attribute.KeyValue {
6135	return NetworkCarrierMncKey.String(val)
6136}
6137
6138// NetworkCarrierName returns an attribute KeyValue conforming to the
6139// "network.carrier.name" semantic conventions. It represents the name of the
6140// mobile carrier.
6141func NetworkCarrierName(val string) attribute.KeyValue {
6142	return NetworkCarrierNameKey.String(val)
6143}
6144
6145// NetworkLocalAddress returns an attribute KeyValue conforming to the
6146// "network.local.address" semantic conventions. It represents the local
6147// address of the network connection - IP address or Unix domain socket name.
6148func NetworkLocalAddress(val string) attribute.KeyValue {
6149	return NetworkLocalAddressKey.String(val)
6150}
6151
6152// NetworkLocalPort returns an attribute KeyValue conforming to the
6153// "network.local.port" semantic conventions. It represents the local port
6154// number of the network connection.
6155func NetworkLocalPort(val int) attribute.KeyValue {
6156	return NetworkLocalPortKey.Int(val)
6157}
6158
6159// NetworkPeerAddress returns an attribute KeyValue conforming to the
6160// "network.peer.address" semantic conventions. It represents the peer address
6161// of the network connection - IP address or Unix domain socket name.
6162func NetworkPeerAddress(val string) attribute.KeyValue {
6163	return NetworkPeerAddressKey.String(val)
6164}
6165
6166// NetworkPeerPort returns an attribute KeyValue conforming to the
6167// "network.peer.port" semantic conventions. It represents the peer port number
6168// of the network connection.
6169func NetworkPeerPort(val int) attribute.KeyValue {
6170	return NetworkPeerPortKey.Int(val)
6171}
6172
6173// NetworkProtocolName returns an attribute KeyValue conforming to the
6174// "network.protocol.name" semantic conventions. It represents the [OSI
6175// application layer](https://osi-model.com/application-layer/) or non-OSI
6176// equivalent.
6177func NetworkProtocolName(val string) attribute.KeyValue {
6178	return NetworkProtocolNameKey.String(val)
6179}
6180
6181// NetworkProtocolVersion returns an attribute KeyValue conforming to the
6182// "network.protocol.version" semantic conventions. It represents the actual
6183// version of the protocol used for network communication.
6184func NetworkProtocolVersion(val string) attribute.KeyValue {
6185	return NetworkProtocolVersionKey.String(val)
6186}
6187
6188// An OCI image manifest.
6189const (
6190	// OciManifestDigestKey is the attribute Key conforming to the
6191	// "oci.manifest.digest" semantic conventions. It represents the digest of
6192	// the OCI image manifest. For container images specifically is the digest
6193	// by which the container image is known.
6194	//
6195	// Type: string
6196	// RequirementLevel: Optional
6197	// Stability: experimental
6198	// Examples:
6199	// 'sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4'
6200	// Note: Follows [OCI Image Manifest
6201	// Specification](https://github.com/opencontainers/image-spec/blob/main/manifest.md),
6202	// and specifically the [Digest
6203	// property](https://github.com/opencontainers/image-spec/blob/main/descriptor.md#digests).
6204	// An example can be found in [Example Image
6205	// Manifest](https://docs.docker.com/registry/spec/manifest-v2-2/#example-image-manifest).
6206	OciManifestDigestKey = attribute.Key("oci.manifest.digest")
6207)
6208
6209// OciManifestDigest returns an attribute KeyValue conforming to the
6210// "oci.manifest.digest" semantic conventions. It represents the digest of the
6211// OCI image manifest. For container images specifically is the digest by which
6212// the container image is known.
6213func OciManifestDigest(val string) attribute.KeyValue {
6214	return OciManifestDigestKey.String(val)
6215}
6216
6217// Attributes used by the OpenTracing Shim layer.
6218const (
6219	// OpentracingRefTypeKey is the attribute Key conforming to the
6220	// "opentracing.ref_type" semantic conventions. It represents the
6221	// parent-child Reference type
6222	//
6223	// Type: Enum
6224	// RequirementLevel: Optional
6225	// Stability: experimental
6226	// Note: The causal relationship between a child Span and a parent Span.
6227	OpentracingRefTypeKey = attribute.Key("opentracing.ref_type")
6228)
6229
6230var (
6231	// The parent Span depends on the child Span in some capacity
6232	OpentracingRefTypeChildOf = OpentracingRefTypeKey.String("child_of")
6233	// The parent Span doesn't depend in any way on the result of the child Span
6234	OpentracingRefTypeFollowsFrom = OpentracingRefTypeKey.String("follows_from")
6235)
6236
6237// The operating system (OS) on which the process represented by this resource
6238// is running.
6239const (
6240	// OSBuildIDKey is the attribute Key conforming to the "os.build_id"
6241	// semantic conventions. It represents the unique identifier for a
6242	// particular build or compilation of the operating system.
6243	//
6244	// Type: string
6245	// RequirementLevel: Optional
6246	// Stability: experimental
6247	// Examples: 'TQ3C.230805.001.B2', '20E247', '22621'
6248	OSBuildIDKey = attribute.Key("os.build_id")
6249
6250	// OSDescriptionKey is the attribute Key conforming to the "os.description"
6251	// semantic conventions. It represents the human readable (not intended to
6252	// be parsed) OS version information, like e.g. reported by `ver` or
6253	// `lsb_release -a` commands.
6254	//
6255	// Type: string
6256	// RequirementLevel: Optional
6257	// Stability: experimental
6258	// Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1
6259	// LTS'
6260	OSDescriptionKey = attribute.Key("os.description")
6261
6262	// OSNameKey is the attribute Key conforming to the "os.name" semantic
6263	// conventions. It represents the human readable operating system name.
6264	//
6265	// Type: string
6266	// RequirementLevel: Optional
6267	// Stability: experimental
6268	// Examples: 'iOS', 'Android', 'Ubuntu'
6269	OSNameKey = attribute.Key("os.name")
6270
6271	// OSTypeKey is the attribute Key conforming to the "os.type" semantic
6272	// conventions. It represents the operating system type.
6273	//
6274	// Type: Enum
6275	// RequirementLevel: Optional
6276	// Stability: experimental
6277	OSTypeKey = attribute.Key("os.type")
6278
6279	// OSVersionKey is the attribute Key conforming to the "os.version"
6280	// semantic conventions. It represents the version string of the operating
6281	// system as defined in [Version
6282	// Attributes](/docs/resource/README.md#version-attributes).
6283	//
6284	// Type: string
6285	// RequirementLevel: Optional
6286	// Stability: experimental
6287	// Examples: '14.2.1', '18.04.1'
6288	OSVersionKey = attribute.Key("os.version")
6289)
6290
6291var (
6292	// Microsoft Windows
6293	OSTypeWindows = OSTypeKey.String("windows")
6294	// Linux
6295	OSTypeLinux = OSTypeKey.String("linux")
6296	// Apple Darwin
6297	OSTypeDarwin = OSTypeKey.String("darwin")
6298	// FreeBSD
6299	OSTypeFreeBSD = OSTypeKey.String("freebsd")
6300	// NetBSD
6301	OSTypeNetBSD = OSTypeKey.String("netbsd")
6302	// OpenBSD
6303	OSTypeOpenBSD = OSTypeKey.String("openbsd")
6304	// DragonFly BSD
6305	OSTypeDragonflyBSD = OSTypeKey.String("dragonflybsd")
6306	// HP-UX (Hewlett Packard Unix)
6307	OSTypeHPUX = OSTypeKey.String("hpux")
6308	// AIX (Advanced Interactive eXecutive)
6309	OSTypeAIX = OSTypeKey.String("aix")
6310	// SunOS, Oracle Solaris
6311	OSTypeSolaris = OSTypeKey.String("solaris")
6312	// IBM z/OS
6313	OSTypeZOS = OSTypeKey.String("z_os")
6314)
6315
6316// OSBuildID returns an attribute KeyValue conforming to the "os.build_id"
6317// semantic conventions. It represents the unique identifier for a particular
6318// build or compilation of the operating system.
6319func OSBuildID(val string) attribute.KeyValue {
6320	return OSBuildIDKey.String(val)
6321}
6322
6323// OSDescription returns an attribute KeyValue conforming to the
6324// "os.description" semantic conventions. It represents the human readable (not
6325// intended to be parsed) OS version information, like e.g. reported by `ver`
6326// or `lsb_release -a` commands.
6327func OSDescription(val string) attribute.KeyValue {
6328	return OSDescriptionKey.String(val)
6329}
6330
6331// OSName returns an attribute KeyValue conforming to the "os.name" semantic
6332// conventions. It represents the human readable operating system name.
6333func OSName(val string) attribute.KeyValue {
6334	return OSNameKey.String(val)
6335}
6336
6337// OSVersion returns an attribute KeyValue conforming to the "os.version"
6338// semantic conventions. It represents the version string of the operating
6339// system as defined in [Version
6340// Attributes](/docs/resource/README.md#version-attributes).
6341func OSVersion(val string) attribute.KeyValue {
6342	return OSVersionKey.String(val)
6343}
6344
6345// Attributes reserved for OpenTelemetry
6346const (
6347	// OTelStatusCodeKey is the attribute Key conforming to the
6348	// "otel.status_code" semantic conventions. It represents the name of the
6349	// code, either "OK" or "ERROR". MUST NOT be set if the status code is
6350	// UNSET.
6351	//
6352	// Type: Enum
6353	// RequirementLevel: Optional
6354	// Stability: stable
6355	OTelStatusCodeKey = attribute.Key("otel.status_code")
6356
6357	// OTelStatusDescriptionKey is the attribute Key conforming to the
6358	// "otel.status_description" semantic conventions. It represents the
6359	// description of the Status if it has a value, otherwise not set.
6360	//
6361	// Type: string
6362	// RequirementLevel: Optional
6363	// Stability: stable
6364	// Examples: 'resource not found'
6365	OTelStatusDescriptionKey = attribute.Key("otel.status_description")
6366)
6367
6368var (
6369	// The operation has been validated by an Application developer or Operator to have completed successfully
6370	OTelStatusCodeOk = OTelStatusCodeKey.String("OK")
6371	// The operation contains an error
6372	OTelStatusCodeError = OTelStatusCodeKey.String("ERROR")
6373)
6374
6375// OTelStatusDescription returns an attribute KeyValue conforming to the
6376// "otel.status_description" semantic conventions. It represents the
6377// description of the Status if it has a value, otherwise not set.
6378func OTelStatusDescription(val string) attribute.KeyValue {
6379	return OTelStatusDescriptionKey.String(val)
6380}
6381
6382// Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's
6383// concepts.
6384const (
6385	// OTelScopeNameKey is the attribute Key conforming to the
6386	// "otel.scope.name" semantic conventions. It represents the name of the
6387	// instrumentation scope - (`InstrumentationScope.Name` in OTLP).
6388	//
6389	// Type: string
6390	// RequirementLevel: Optional
6391	// Stability: stable
6392	// Examples: 'io.opentelemetry.contrib.mongodb'
6393	OTelScopeNameKey = attribute.Key("otel.scope.name")
6394
6395	// OTelScopeVersionKey is the attribute Key conforming to the
6396	// "otel.scope.version" semantic conventions. It represents the version of
6397	// the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
6398	//
6399	// Type: string
6400	// RequirementLevel: Optional
6401	// Stability: stable
6402	// Examples: '1.0.0'
6403	OTelScopeVersionKey = attribute.Key("otel.scope.version")
6404)
6405
6406// OTelScopeName returns an attribute KeyValue conforming to the
6407// "otel.scope.name" semantic conventions. It represents the name of the
6408// instrumentation scope - (`InstrumentationScope.Name` in OTLP).
6409func OTelScopeName(val string) attribute.KeyValue {
6410	return OTelScopeNameKey.String(val)
6411}
6412
6413// OTelScopeVersion returns an attribute KeyValue conforming to the
6414// "otel.scope.version" semantic conventions. It represents the version of the
6415// instrumentation scope - (`InstrumentationScope.Version` in OTLP).
6416func OTelScopeVersion(val string) attribute.KeyValue {
6417	return OTelScopeVersionKey.String(val)
6418}
6419
6420// Operations that access some remote service.
6421const (
6422	// PeerServiceKey is the attribute Key conforming to the "peer.service"
6423	// semantic conventions. It represents the
6424	// [`service.name`](/docs/resource/README.md#service) of the remote
6425	// service. SHOULD be equal to the actual `service.name` resource attribute
6426	// of the remote service if any.
6427	//
6428	// Type: string
6429	// RequirementLevel: Optional
6430	// Stability: experimental
6431	// Examples: 'AuthTokenCache'
6432	PeerServiceKey = attribute.Key("peer.service")
6433)
6434
6435// PeerService returns an attribute KeyValue conforming to the
6436// "peer.service" semantic conventions. It represents the
6437// [`service.name`](/docs/resource/README.md#service) of the remote service.
6438// SHOULD be equal to the actual `service.name` resource attribute of the
6439// remote service if any.
6440func PeerService(val string) attribute.KeyValue {
6441	return PeerServiceKey.String(val)
6442}
6443
6444// An operating system process.
6445const (
6446	// ProcessCommandKey is the attribute Key conforming to the
6447	// "process.command" semantic conventions. It represents the command used
6448	// to launch the process (i.e. the command name). On Linux based systems,
6449	// can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can
6450	// be set to the first parameter extracted from `GetCommandLineW`.
6451	//
6452	// Type: string
6453	// RequirementLevel: Optional
6454	// Stability: experimental
6455	// Examples: 'cmd/otelcol'
6456	ProcessCommandKey = attribute.Key("process.command")
6457
6458	// ProcessCommandArgsKey is the attribute Key conforming to the
6459	// "process.command_args" semantic conventions. It represents the all the
6460	// command arguments (including the command/executable itself) as received
6461	// by the process. On Linux-based systems (and some other Unixoid systems
6462	// supporting procfs), can be set according to the list of null-delimited
6463	// strings extracted from `proc/[pid]/cmdline`. For libc-based executables,
6464	// this would be the full argv vector passed to `main`.
6465	//
6466	// Type: string[]
6467	// RequirementLevel: Optional
6468	// Stability: experimental
6469	// Examples: 'cmd/otecol', '--config=config.yaml'
6470	ProcessCommandArgsKey = attribute.Key("process.command_args")
6471
6472	// ProcessCommandLineKey is the attribute Key conforming to the
6473	// "process.command_line" semantic conventions. It represents the full
6474	// command used to launch the process as a single string representing the
6475	// full command. On Windows, can be set to the result of `GetCommandLineW`.
6476	// Do not set this if you have to assemble it just for monitoring; use
6477	// `process.command_args` instead.
6478	//
6479	// Type: string
6480	// RequirementLevel: Optional
6481	// Stability: experimental
6482	// Examples: 'C:\\cmd\\otecol --config="my directory\\config.yaml"'
6483	ProcessCommandLineKey = attribute.Key("process.command_line")
6484
6485	// ProcessContextSwitchTypeKey is the attribute Key conforming to the
6486	// "process.context_switch_type" semantic conventions. It represents the
6487	// specifies whether the context switches for this data point were
6488	// voluntary or involuntary.
6489	//
6490	// Type: Enum
6491	// RequirementLevel: Optional
6492	// Stability: experimental
6493	ProcessContextSwitchTypeKey = attribute.Key("process.context_switch_type")
6494
6495	// ProcessCreationTimeKey is the attribute Key conforming to the
6496	// "process.creation.time" semantic conventions. It represents the date and
6497	// time the process was created, in ISO 8601 format.
6498	//
6499	// Type: string
6500	// RequirementLevel: Optional
6501	// Stability: experimental
6502	// Examples: '2023-11-21T09:25:34.853Z'
6503	ProcessCreationTimeKey = attribute.Key("process.creation.time")
6504
6505	// ProcessExecutableNameKey is the attribute Key conforming to the
6506	// "process.executable.name" semantic conventions. It represents the name
6507	// of the process executable. On Linux based systems, can be set to the
6508	// `Name` in `proc/[pid]/status`. On Windows, can be set to the base name
6509	// of `GetProcessImageFileNameW`.
6510	//
6511	// Type: string
6512	// RequirementLevel: Optional
6513	// Stability: experimental
6514	// Examples: 'otelcol'
6515	ProcessExecutableNameKey = attribute.Key("process.executable.name")
6516
6517	// ProcessExecutablePathKey is the attribute Key conforming to the
6518	// "process.executable.path" semantic conventions. It represents the full
6519	// path to the process executable. On Linux based systems, can be set to
6520	// the target of `proc/[pid]/exe`. On Windows, can be set to the result of
6521	// `GetProcessImageFileNameW`.
6522	//
6523	// Type: string
6524	// RequirementLevel: Optional
6525	// Stability: experimental
6526	// Examples: '/usr/bin/cmd/otelcol'
6527	ProcessExecutablePathKey = attribute.Key("process.executable.path")
6528
6529	// ProcessExitCodeKey is the attribute Key conforming to the
6530	// "process.exit.code" semantic conventions. It represents the exit code of
6531	// the process.
6532	//
6533	// Type: int
6534	// RequirementLevel: Optional
6535	// Stability: experimental
6536	// Examples: 127
6537	ProcessExitCodeKey = attribute.Key("process.exit.code")
6538
6539	// ProcessExitTimeKey is the attribute Key conforming to the
6540	// "process.exit.time" semantic conventions. It represents the date and
6541	// time the process exited, in ISO 8601 format.
6542	//
6543	// Type: string
6544	// RequirementLevel: Optional
6545	// Stability: experimental
6546	// Examples: '2023-11-21T09:26:12.315Z'
6547	ProcessExitTimeKey = attribute.Key("process.exit.time")
6548
6549	// ProcessGroupLeaderPIDKey is the attribute Key conforming to the
6550	// "process.group_leader.pid" semantic conventions. It represents the PID
6551	// of the process's group leader. This is also the process group ID (PGID)
6552	// of the process.
6553	//
6554	// Type: int
6555	// RequirementLevel: Optional
6556	// Stability: experimental
6557	// Examples: 23
6558	ProcessGroupLeaderPIDKey = attribute.Key("process.group_leader.pid")
6559
6560	// ProcessInteractiveKey is the attribute Key conforming to the
6561	// "process.interactive" semantic conventions. It represents the whether
6562	// the process is connected to an interactive shell.
6563	//
6564	// Type: boolean
6565	// RequirementLevel: Optional
6566	// Stability: experimental
6567	ProcessInteractiveKey = attribute.Key("process.interactive")
6568
6569	// ProcessOwnerKey is the attribute Key conforming to the "process.owner"
6570	// semantic conventions. It represents the username of the user that owns
6571	// the process.
6572	//
6573	// Type: string
6574	// RequirementLevel: Optional
6575	// Stability: experimental
6576	// Examples: 'root'
6577	ProcessOwnerKey = attribute.Key("process.owner")
6578
6579	// ProcessPagingFaultTypeKey is the attribute Key conforming to the
6580	// "process.paging.fault_type" semantic conventions. It represents the type
6581	// of page fault for this data point. Type `major` is for major/hard page
6582	// faults, and `minor` is for minor/soft page faults.
6583	//
6584	// Type: Enum
6585	// RequirementLevel: Optional
6586	// Stability: experimental
6587	ProcessPagingFaultTypeKey = attribute.Key("process.paging.fault_type")
6588
6589	// ProcessParentPIDKey is the attribute Key conforming to the
6590	// "process.parent_pid" semantic conventions. It represents the parent
6591	// Process identifier (PPID).
6592	//
6593	// Type: int
6594	// RequirementLevel: Optional
6595	// Stability: experimental
6596	// Examples: 111
6597	ProcessParentPIDKey = attribute.Key("process.parent_pid")
6598
6599	// ProcessPIDKey is the attribute Key conforming to the "process.pid"
6600	// semantic conventions. It represents the process identifier (PID).
6601	//
6602	// Type: int
6603	// RequirementLevel: Optional
6604	// Stability: experimental
6605	// Examples: 1234
6606	ProcessPIDKey = attribute.Key("process.pid")
6607
6608	// ProcessRealUserIDKey is the attribute Key conforming to the
6609	// "process.real_user.id" semantic conventions. It represents the real user
6610	// ID (RUID) of the process.
6611	//
6612	// Type: int
6613	// RequirementLevel: Optional
6614	// Stability: experimental
6615	// Examples: 1000
6616	ProcessRealUserIDKey = attribute.Key("process.real_user.id")
6617
6618	// ProcessRealUserNameKey is the attribute Key conforming to the
6619	// "process.real_user.name" semantic conventions. It represents the
6620	// username of the real user of the process.
6621	//
6622	// Type: string
6623	// RequirementLevel: Optional
6624	// Stability: experimental
6625	// Examples: 'operator'
6626	ProcessRealUserNameKey = attribute.Key("process.real_user.name")
6627
6628	// ProcessRuntimeDescriptionKey is the attribute Key conforming to the
6629	// "process.runtime.description" semantic conventions. It represents an
6630	// additional description about the runtime of the process, for example a
6631	// specific vendor customization of the runtime environment.
6632	//
6633	// Type: string
6634	// RequirementLevel: Optional
6635	// Stability: experimental
6636	// Examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0'
6637	ProcessRuntimeDescriptionKey = attribute.Key("process.runtime.description")
6638
6639	// ProcessRuntimeNameKey is the attribute Key conforming to the
6640	// "process.runtime.name" semantic conventions. It represents the name of
6641	// the runtime of this process. For compiled native binaries, this SHOULD
6642	// be the name of the compiler.
6643	//
6644	// Type: string
6645	// RequirementLevel: Optional
6646	// Stability: experimental
6647	// Examples: 'OpenJDK Runtime Environment'
6648	ProcessRuntimeNameKey = attribute.Key("process.runtime.name")
6649
6650	// ProcessRuntimeVersionKey is the attribute Key conforming to the
6651	// "process.runtime.version" semantic conventions. It represents the
6652	// version of the runtime of this process, as returned by the runtime
6653	// without modification.
6654	//
6655	// Type: string
6656	// RequirementLevel: Optional
6657	// Stability: experimental
6658	// Examples: '14.0.2'
6659	ProcessRuntimeVersionKey = attribute.Key("process.runtime.version")
6660
6661	// ProcessSavedUserIDKey is the attribute Key conforming to the
6662	// "process.saved_user.id" semantic conventions. It represents the saved
6663	// user ID (SUID) of the process.
6664	//
6665	// Type: int
6666	// RequirementLevel: Optional
6667	// Stability: experimental
6668	// Examples: 1002
6669	ProcessSavedUserIDKey = attribute.Key("process.saved_user.id")
6670
6671	// ProcessSavedUserNameKey is the attribute Key conforming to the
6672	// "process.saved_user.name" semantic conventions. It represents the
6673	// username of the saved user.
6674	//
6675	// Type: string
6676	// RequirementLevel: Optional
6677	// Stability: experimental
6678	// Examples: 'operator'
6679	ProcessSavedUserNameKey = attribute.Key("process.saved_user.name")
6680
6681	// ProcessSessionLeaderPIDKey is the attribute Key conforming to the
6682	// "process.session_leader.pid" semantic conventions. It represents the PID
6683	// of the process's session leader. This is also the session ID (SID) of
6684	// the process.
6685	//
6686	// Type: int
6687	// RequirementLevel: Optional
6688	// Stability: experimental
6689	// Examples: 14
6690	ProcessSessionLeaderPIDKey = attribute.Key("process.session_leader.pid")
6691
6692	// ProcessUserIDKey is the attribute Key conforming to the
6693	// "process.user.id" semantic conventions. It represents the effective user
6694	// ID (EUID) of the process.
6695	//
6696	// Type: int
6697	// RequirementLevel: Optional
6698	// Stability: experimental
6699	// Examples: 1001
6700	ProcessUserIDKey = attribute.Key("process.user.id")
6701
6702	// ProcessUserNameKey is the attribute Key conforming to the
6703	// "process.user.name" semantic conventions. It represents the username of
6704	// the effective user of the process.
6705	//
6706	// Type: string
6707	// RequirementLevel: Optional
6708	// Stability: experimental
6709	// Examples: 'root'
6710	ProcessUserNameKey = attribute.Key("process.user.name")
6711
6712	// ProcessVpidKey is the attribute Key conforming to the "process.vpid"
6713	// semantic conventions. It represents the virtual process identifier.
6714	//
6715	// Type: int
6716	// RequirementLevel: Optional
6717	// Stability: experimental
6718	// Examples: 12
6719	// Note: The process ID within a PID namespace. This is not necessarily
6720	// unique across all processes on the host but it is unique within the
6721	// process namespace that the process exists within.
6722	ProcessVpidKey = attribute.Key("process.vpid")
6723)
6724
6725var (
6726	// voluntary
6727	ProcessContextSwitchTypeVoluntary = ProcessContextSwitchTypeKey.String("voluntary")
6728	// involuntary
6729	ProcessContextSwitchTypeInvoluntary = ProcessContextSwitchTypeKey.String("involuntary")
6730)
6731
6732var (
6733	// major
6734	ProcessPagingFaultTypeMajor = ProcessPagingFaultTypeKey.String("major")
6735	// minor
6736	ProcessPagingFaultTypeMinor = ProcessPagingFaultTypeKey.String("minor")
6737)
6738
6739// ProcessCommand returns an attribute KeyValue conforming to the
6740// "process.command" semantic conventions. It represents the command used to
6741// launch the process (i.e. the command name). On Linux based systems, can be
6742// set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to
6743// the first parameter extracted from `GetCommandLineW`.
6744func ProcessCommand(val string) attribute.KeyValue {
6745	return ProcessCommandKey.String(val)
6746}
6747
6748// ProcessCommandArgs returns an attribute KeyValue conforming to the
6749// "process.command_args" semantic conventions. It represents the all the
6750// command arguments (including the command/executable itself) as received by
6751// the process. On Linux-based systems (and some other Unixoid systems
6752// supporting procfs), can be set according to the list of null-delimited
6753// strings extracted from `proc/[pid]/cmdline`. For libc-based executables,
6754// this would be the full argv vector passed to `main`.
6755func ProcessCommandArgs(val ...string) attribute.KeyValue {
6756	return ProcessCommandArgsKey.StringSlice(val)
6757}
6758
6759// ProcessCommandLine returns an attribute KeyValue conforming to the
6760// "process.command_line" semantic conventions. It represents the full command
6761// used to launch the process as a single string representing the full command.
6762// On Windows, can be set to the result of `GetCommandLineW`. Do not set this
6763// if you have to assemble it just for monitoring; use `process.command_args`
6764// instead.
6765func ProcessCommandLine(val string) attribute.KeyValue {
6766	return ProcessCommandLineKey.String(val)
6767}
6768
6769// ProcessCreationTime returns an attribute KeyValue conforming to the
6770// "process.creation.time" semantic conventions. It represents the date and
6771// time the process was created, in ISO 8601 format.
6772func ProcessCreationTime(val string) attribute.KeyValue {
6773	return ProcessCreationTimeKey.String(val)
6774}
6775
6776// ProcessExecutableName returns an attribute KeyValue conforming to the
6777// "process.executable.name" semantic conventions. It represents the name of
6778// the process executable. On Linux based systems, can be set to the `Name` in
6779// `proc/[pid]/status`. On Windows, can be set to the base name of
6780// `GetProcessImageFileNameW`.
6781func ProcessExecutableName(val string) attribute.KeyValue {
6782	return ProcessExecutableNameKey.String(val)
6783}
6784
6785// ProcessExecutablePath returns an attribute KeyValue conforming to the
6786// "process.executable.path" semantic conventions. It represents the full path
6787// to the process executable. On Linux based systems, can be set to the target
6788// of `proc/[pid]/exe`. On Windows, can be set to the result of
6789// `GetProcessImageFileNameW`.
6790func ProcessExecutablePath(val string) attribute.KeyValue {
6791	return ProcessExecutablePathKey.String(val)
6792}
6793
6794// ProcessExitCode returns an attribute KeyValue conforming to the
6795// "process.exit.code" semantic conventions. It represents the exit code of the
6796// process.
6797func ProcessExitCode(val int) attribute.KeyValue {
6798	return ProcessExitCodeKey.Int(val)
6799}
6800
6801// ProcessExitTime returns an attribute KeyValue conforming to the
6802// "process.exit.time" semantic conventions. It represents the date and time
6803// the process exited, in ISO 8601 format.
6804func ProcessExitTime(val string) attribute.KeyValue {
6805	return ProcessExitTimeKey.String(val)
6806}
6807
6808// ProcessGroupLeaderPID returns an attribute KeyValue conforming to the
6809// "process.group_leader.pid" semantic conventions. It represents the PID of
6810// the process's group leader. This is also the process group ID (PGID) of the
6811// process.
6812func ProcessGroupLeaderPID(val int) attribute.KeyValue {
6813	return ProcessGroupLeaderPIDKey.Int(val)
6814}
6815
6816// ProcessInteractive returns an attribute KeyValue conforming to the
6817// "process.interactive" semantic conventions. It represents the whether the
6818// process is connected to an interactive shell.
6819func ProcessInteractive(val bool) attribute.KeyValue {
6820	return ProcessInteractiveKey.Bool(val)
6821}
6822
6823// ProcessOwner returns an attribute KeyValue conforming to the
6824// "process.owner" semantic conventions. It represents the username of the user
6825// that owns the process.
6826func ProcessOwner(val string) attribute.KeyValue {
6827	return ProcessOwnerKey.String(val)
6828}
6829
6830// ProcessParentPID returns an attribute KeyValue conforming to the
6831// "process.parent_pid" semantic conventions. It represents the parent Process
6832// identifier (PPID).
6833func ProcessParentPID(val int) attribute.KeyValue {
6834	return ProcessParentPIDKey.Int(val)
6835}
6836
6837// ProcessPID returns an attribute KeyValue conforming to the "process.pid"
6838// semantic conventions. It represents the process identifier (PID).
6839func ProcessPID(val int) attribute.KeyValue {
6840	return ProcessPIDKey.Int(val)
6841}
6842
6843// ProcessRealUserID returns an attribute KeyValue conforming to the
6844// "process.real_user.id" semantic conventions. It represents the real user ID
6845// (RUID) of the process.
6846func ProcessRealUserID(val int) attribute.KeyValue {
6847	return ProcessRealUserIDKey.Int(val)
6848}
6849
6850// ProcessRealUserName returns an attribute KeyValue conforming to the
6851// "process.real_user.name" semantic conventions. It represents the username of
6852// the real user of the process.
6853func ProcessRealUserName(val string) attribute.KeyValue {
6854	return ProcessRealUserNameKey.String(val)
6855}
6856
6857// ProcessRuntimeDescription returns an attribute KeyValue conforming to the
6858// "process.runtime.description" semantic conventions. It represents an
6859// additional description about the runtime of the process, for example a
6860// specific vendor customization of the runtime environment.
6861func ProcessRuntimeDescription(val string) attribute.KeyValue {
6862	return ProcessRuntimeDescriptionKey.String(val)
6863}
6864
6865// ProcessRuntimeName returns an attribute KeyValue conforming to the
6866// "process.runtime.name" semantic conventions. It represents the name of the
6867// runtime of this process. For compiled native binaries, this SHOULD be the
6868// name of the compiler.
6869func ProcessRuntimeName(val string) attribute.KeyValue {
6870	return ProcessRuntimeNameKey.String(val)
6871}
6872
6873// ProcessRuntimeVersion returns an attribute KeyValue conforming to the
6874// "process.runtime.version" semantic conventions. It represents the version of
6875// the runtime of this process, as returned by the runtime without
6876// modification.
6877func ProcessRuntimeVersion(val string) attribute.KeyValue {
6878	return ProcessRuntimeVersionKey.String(val)
6879}
6880
6881// ProcessSavedUserID returns an attribute KeyValue conforming to the
6882// "process.saved_user.id" semantic conventions. It represents the saved user
6883// ID (SUID) of the process.
6884func ProcessSavedUserID(val int) attribute.KeyValue {
6885	return ProcessSavedUserIDKey.Int(val)
6886}
6887
6888// ProcessSavedUserName returns an attribute KeyValue conforming to the
6889// "process.saved_user.name" semantic conventions. It represents the username
6890// of the saved user.
6891func ProcessSavedUserName(val string) attribute.KeyValue {
6892	return ProcessSavedUserNameKey.String(val)
6893}
6894
6895// ProcessSessionLeaderPID returns an attribute KeyValue conforming to the
6896// "process.session_leader.pid" semantic conventions. It represents the PID of
6897// the process's session leader. This is also the session ID (SID) of the
6898// process.
6899func ProcessSessionLeaderPID(val int) attribute.KeyValue {
6900	return ProcessSessionLeaderPIDKey.Int(val)
6901}
6902
6903// ProcessUserID returns an attribute KeyValue conforming to the
6904// "process.user.id" semantic conventions. It represents the effective user ID
6905// (EUID) of the process.
6906func ProcessUserID(val int) attribute.KeyValue {
6907	return ProcessUserIDKey.Int(val)
6908}
6909
6910// ProcessUserName returns an attribute KeyValue conforming to the
6911// "process.user.name" semantic conventions. It represents the username of the
6912// effective user of the process.
6913func ProcessUserName(val string) attribute.KeyValue {
6914	return ProcessUserNameKey.String(val)
6915}
6916
6917// ProcessVpid returns an attribute KeyValue conforming to the
6918// "process.vpid" semantic conventions. It represents the virtual process
6919// identifier.
6920func ProcessVpid(val int) attribute.KeyValue {
6921	return ProcessVpidKey.Int(val)
6922}
6923
6924// Attributes for process CPU
6925const (
6926	// ProcessCPUStateKey is the attribute Key conforming to the
6927	// "process.cpu.state" semantic conventions. It represents the CPU state of
6928	// the process.
6929	//
6930	// Type: Enum
6931	// RequirementLevel: Optional
6932	// Stability: experimental
6933	ProcessCPUStateKey = attribute.Key("process.cpu.state")
6934)
6935
6936var (
6937	// system
6938	ProcessCPUStateSystem = ProcessCPUStateKey.String("system")
6939	// user
6940	ProcessCPUStateUser = ProcessCPUStateKey.String("user")
6941	// wait
6942	ProcessCPUStateWait = ProcessCPUStateKey.String("wait")
6943)
6944
6945// Attributes for remote procedure calls.
6946const (
6947	// RPCConnectRPCErrorCodeKey is the attribute Key conforming to the
6948	// "rpc.connect_rpc.error_code" semantic conventions. It represents the
6949	// [error codes](https://connect.build/docs/protocol/#error-codes) of the
6950	// Connect request. Error codes are always string values.
6951	//
6952	// Type: Enum
6953	// RequirementLevel: Optional
6954	// Stability: experimental
6955	RPCConnectRPCErrorCodeKey = attribute.Key("rpc.connect_rpc.error_code")
6956
6957	// RPCGRPCStatusCodeKey is the attribute Key conforming to the
6958	// "rpc.grpc.status_code" semantic conventions. It represents the [numeric
6959	// status
6960	// code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of
6961	// the gRPC request.
6962	//
6963	// Type: Enum
6964	// RequirementLevel: Optional
6965	// Stability: experimental
6966	RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
6967
6968	// RPCJsonrpcErrorCodeKey is the attribute Key conforming to the
6969	// "rpc.jsonrpc.error_code" semantic conventions. It represents the
6970	// `error.code` property of response if it is an error response.
6971	//
6972	// Type: int
6973	// RequirementLevel: Optional
6974	// Stability: experimental
6975	// Examples: -32700, 100
6976	RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code")
6977
6978	// RPCJsonrpcErrorMessageKey is the attribute Key conforming to the
6979	// "rpc.jsonrpc.error_message" semantic conventions. It represents the
6980	// `error.message` property of response if it is an error response.
6981	//
6982	// Type: string
6983	// RequirementLevel: Optional
6984	// Stability: experimental
6985	// Examples: 'Parse error', 'User already exists'
6986	RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message")
6987
6988	// RPCJsonrpcRequestIDKey is the attribute Key conforming to the
6989	// "rpc.jsonrpc.request_id" semantic conventions. It represents the `id`
6990	// property of request or response. Since protocol allows id to be int,
6991	// string, `null` or missing (for notifications), value is expected to be
6992	// cast to string for simplicity. Use empty string in case of `null` value.
6993	// Omit entirely if this is a notification.
6994	//
6995	// Type: string
6996	// RequirementLevel: Optional
6997	// Stability: experimental
6998	// Examples: '10', 'request-7', ''
6999	RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id")
7000
7001	// RPCJsonrpcVersionKey is the attribute Key conforming to the
7002	// "rpc.jsonrpc.version" semantic conventions. It represents the protocol
7003	// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0
7004	// doesn't specify this, the value can be omitted.
7005	//
7006	// Type: string
7007	// RequirementLevel: Optional
7008	// Stability: experimental
7009	// Examples: '2.0', '1.0'
7010	RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version")
7011
7012	// RPCMessageCompressedSizeKey is the attribute Key conforming to the
7013	// "rpc.message.compressed_size" semantic conventions. It represents the
7014	// compressed size of the message in bytes.
7015	//
7016	// Type: int
7017	// RequirementLevel: Optional
7018	// Stability: experimental
7019	RPCMessageCompressedSizeKey = attribute.Key("rpc.message.compressed_size")
7020
7021	// RPCMessageIDKey is the attribute Key conforming to the "rpc.message.id"
7022	// semantic conventions. It represents the mUST be calculated as two
7023	// different counters starting from `1` one for sent messages and one for
7024	// received message.
7025	//
7026	// Type: int
7027	// RequirementLevel: Optional
7028	// Stability: experimental
7029	// Note: This way we guarantee that the values will be consistent between
7030	// different implementations.
7031	RPCMessageIDKey = attribute.Key("rpc.message.id")
7032
7033	// RPCMessageTypeKey is the attribute Key conforming to the
7034	// "rpc.message.type" semantic conventions. It represents the whether this
7035	// is a received or sent message.
7036	//
7037	// Type: Enum
7038	// RequirementLevel: Optional
7039	// Stability: experimental
7040	RPCMessageTypeKey = attribute.Key("rpc.message.type")
7041
7042	// RPCMessageUncompressedSizeKey is the attribute Key conforming to the
7043	// "rpc.message.uncompressed_size" semantic conventions. It represents the
7044	// uncompressed size of the message in bytes.
7045	//
7046	// Type: int
7047	// RequirementLevel: Optional
7048	// Stability: experimental
7049	RPCMessageUncompressedSizeKey = attribute.Key("rpc.message.uncompressed_size")
7050
7051	// RPCMethodKey is the attribute Key conforming to the "rpc.method"
7052	// semantic conventions. It represents the name of the (logical) method
7053	// being called, must be equal to the $method part in the span name.
7054	//
7055	// Type: string
7056	// RequirementLevel: Optional
7057	// Stability: experimental
7058	// Examples: 'exampleMethod'
7059	// Note: This is the logical name of the method from the RPC interface
7060	// perspective, which can be different from the name of any implementing
7061	// method/function. The `code.function` attribute may be used to store the
7062	// latter (e.g., method actually executing the call on the server side, RPC
7063	// client stub method on the client side).
7064	RPCMethodKey = attribute.Key("rpc.method")
7065
7066	// RPCServiceKey is the attribute Key conforming to the "rpc.service"
7067	// semantic conventions. It represents the full (logical) name of the
7068	// service being called, including its package name, if applicable.
7069	//
7070	// Type: string
7071	// RequirementLevel: Optional
7072	// Stability: experimental
7073	// Examples: 'myservice.EchoService'
7074	// Note: This is the logical name of the service from the RPC interface
7075	// perspective, which can be different from the name of any implementing
7076	// class. The `code.namespace` attribute may be used to store the latter
7077	// (despite the attribute name, it may include a class name; e.g., class
7078	// with method actually executing the call on the server side, RPC client
7079	// stub class on the client side).
7080	RPCServiceKey = attribute.Key("rpc.service")
7081
7082	// RPCSystemKey is the attribute Key conforming to the "rpc.system"
7083	// semantic conventions. It represents a string identifying the remoting
7084	// system. See below for a list of well-known identifiers.
7085	//
7086	// Type: Enum
7087	// RequirementLevel: Optional
7088	// Stability: experimental
7089	RPCSystemKey = attribute.Key("rpc.system")
7090)
7091
7092var (
7093	// cancelled
7094	RPCConnectRPCErrorCodeCancelled = RPCConnectRPCErrorCodeKey.String("cancelled")
7095	// unknown
7096	RPCConnectRPCErrorCodeUnknown = RPCConnectRPCErrorCodeKey.String("unknown")
7097	// invalid_argument
7098	RPCConnectRPCErrorCodeInvalidArgument = RPCConnectRPCErrorCodeKey.String("invalid_argument")
7099	// deadline_exceeded
7100	RPCConnectRPCErrorCodeDeadlineExceeded = RPCConnectRPCErrorCodeKey.String("deadline_exceeded")
7101	// not_found
7102	RPCConnectRPCErrorCodeNotFound = RPCConnectRPCErrorCodeKey.String("not_found")
7103	// already_exists
7104	RPCConnectRPCErrorCodeAlreadyExists = RPCConnectRPCErrorCodeKey.String("already_exists")
7105	// permission_denied
7106	RPCConnectRPCErrorCodePermissionDenied = RPCConnectRPCErrorCodeKey.String("permission_denied")
7107	// resource_exhausted
7108	RPCConnectRPCErrorCodeResourceExhausted = RPCConnectRPCErrorCodeKey.String("resource_exhausted")
7109	// failed_precondition
7110	RPCConnectRPCErrorCodeFailedPrecondition = RPCConnectRPCErrorCodeKey.String("failed_precondition")
7111	// aborted
7112	RPCConnectRPCErrorCodeAborted = RPCConnectRPCErrorCodeKey.String("aborted")
7113	// out_of_range
7114	RPCConnectRPCErrorCodeOutOfRange = RPCConnectRPCErrorCodeKey.String("out_of_range")
7115	// unimplemented
7116	RPCConnectRPCErrorCodeUnimplemented = RPCConnectRPCErrorCodeKey.String("unimplemented")
7117	// internal
7118	RPCConnectRPCErrorCodeInternal = RPCConnectRPCErrorCodeKey.String("internal")
7119	// unavailable
7120	RPCConnectRPCErrorCodeUnavailable = RPCConnectRPCErrorCodeKey.String("unavailable")
7121	// data_loss
7122	RPCConnectRPCErrorCodeDataLoss = RPCConnectRPCErrorCodeKey.String("data_loss")
7123	// unauthenticated
7124	RPCConnectRPCErrorCodeUnauthenticated = RPCConnectRPCErrorCodeKey.String("unauthenticated")
7125)
7126
7127var (
7128	// OK
7129	RPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0)
7130	// CANCELLED
7131	RPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1)
7132	// UNKNOWN
7133	RPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2)
7134	// INVALID_ARGUMENT
7135	RPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3)
7136	// DEADLINE_EXCEEDED
7137	RPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4)
7138	// NOT_FOUND
7139	RPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5)
7140	// ALREADY_EXISTS
7141	RPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6)
7142	// PERMISSION_DENIED
7143	RPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7)
7144	// RESOURCE_EXHAUSTED
7145	RPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8)
7146	// FAILED_PRECONDITION
7147	RPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9)
7148	// ABORTED
7149	RPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10)
7150	// OUT_OF_RANGE
7151	RPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11)
7152	// UNIMPLEMENTED
7153	RPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12)
7154	// INTERNAL
7155	RPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13)
7156	// UNAVAILABLE
7157	RPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14)
7158	// DATA_LOSS
7159	RPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15)
7160	// UNAUTHENTICATED
7161	RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)
7162)
7163
7164var (
7165	// sent
7166	RPCMessageTypeSent = RPCMessageTypeKey.String("SENT")
7167	// received
7168	RPCMessageTypeReceived = RPCMessageTypeKey.String("RECEIVED")
7169)
7170
7171var (
7172	// gRPC
7173	RPCSystemGRPC = RPCSystemKey.String("grpc")
7174	// Java RMI
7175	RPCSystemJavaRmi = RPCSystemKey.String("java_rmi")
7176	// .NET WCF
7177	RPCSystemDotnetWcf = RPCSystemKey.String("dotnet_wcf")
7178	// Apache Dubbo
7179	RPCSystemApacheDubbo = RPCSystemKey.String("apache_dubbo")
7180	// Connect RPC
7181	RPCSystemConnectRPC = RPCSystemKey.String("connect_rpc")
7182)
7183
7184// RPCJsonrpcErrorCode returns an attribute KeyValue conforming to the
7185// "rpc.jsonrpc.error_code" semantic conventions. It represents the
7186// `error.code` property of response if it is an error response.
7187func RPCJsonrpcErrorCode(val int) attribute.KeyValue {
7188	return RPCJsonrpcErrorCodeKey.Int(val)
7189}
7190
7191// RPCJsonrpcErrorMessage returns an attribute KeyValue conforming to the
7192// "rpc.jsonrpc.error_message" semantic conventions. It represents the
7193// `error.message` property of response if it is an error response.
7194func RPCJsonrpcErrorMessage(val string) attribute.KeyValue {
7195	return RPCJsonrpcErrorMessageKey.String(val)
7196}
7197
7198// RPCJsonrpcRequestID returns an attribute KeyValue conforming to the
7199// "rpc.jsonrpc.request_id" semantic conventions. It represents the `id`
7200// property of request or response. Since protocol allows id to be int, string,
7201// `null` or missing (for notifications), value is expected to be cast to
7202// string for simplicity. Use empty string in case of `null` value. Omit
7203// entirely if this is a notification.
7204func RPCJsonrpcRequestID(val string) attribute.KeyValue {
7205	return RPCJsonrpcRequestIDKey.String(val)
7206}
7207
7208// RPCJsonrpcVersion returns an attribute KeyValue conforming to the
7209// "rpc.jsonrpc.version" semantic conventions. It represents the protocol
7210// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0
7211// doesn't specify this, the value can be omitted.
7212func RPCJsonrpcVersion(val string) attribute.KeyValue {
7213	return RPCJsonrpcVersionKey.String(val)
7214}
7215
7216// RPCMessageCompressedSize returns an attribute KeyValue conforming to the
7217// "rpc.message.compressed_size" semantic conventions. It represents the
7218// compressed size of the message in bytes.
7219func RPCMessageCompressedSize(val int) attribute.KeyValue {
7220	return RPCMessageCompressedSizeKey.Int(val)
7221}
7222
7223// RPCMessageID returns an attribute KeyValue conforming to the
7224// "rpc.message.id" semantic conventions. It represents the mUST be calculated
7225// as two different counters starting from `1` one for sent messages and one
7226// for received message.
7227func RPCMessageID(val int) attribute.KeyValue {
7228	return RPCMessageIDKey.Int(val)
7229}
7230
7231// RPCMessageUncompressedSize returns an attribute KeyValue conforming to
7232// the "rpc.message.uncompressed_size" semantic conventions. It represents the
7233// uncompressed size of the message in bytes.
7234func RPCMessageUncompressedSize(val int) attribute.KeyValue {
7235	return RPCMessageUncompressedSizeKey.Int(val)
7236}
7237
7238// RPCMethod returns an attribute KeyValue conforming to the "rpc.method"
7239// semantic conventions. It represents the name of the (logical) method being
7240// called, must be equal to the $method part in the span name.
7241func RPCMethod(val string) attribute.KeyValue {
7242	return RPCMethodKey.String(val)
7243}
7244
7245// RPCService returns an attribute KeyValue conforming to the "rpc.service"
7246// semantic conventions. It represents the full (logical) name of the service
7247// being called, including its package name, if applicable.
7248func RPCService(val string) attribute.KeyValue {
7249	return RPCServiceKey.String(val)
7250}
7251
7252// These attributes may be used to describe the server in a connection-based
7253// network interaction where there is one side that initiates the connection
7254// (the client is the side that initiates the connection). This covers all TCP
7255// network interactions since TCP is connection-based and one side initiates
7256// the connection (an exception is made for peer-to-peer communication over TCP
7257// where the "user-facing" surface of the protocol / API doesn't expose a clear
7258// notion of client and server). This also covers UDP network interactions
7259// where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.
7260const (
7261	// ServerAddressKey is the attribute Key conforming to the "server.address"
7262	// semantic conventions. It represents the server domain name if available
7263	// without reverse DNS lookup; otherwise, IP address or Unix domain socket
7264	// name.
7265	//
7266	// Type: string
7267	// RequirementLevel: Optional
7268	// Stability: stable
7269	// Examples: 'example.com', '10.1.2.80', '/tmp/my.sock'
7270	// Note: When observed from the client side, and when communicating through
7271	// an intermediary, `server.address` SHOULD represent the server address
7272	// behind any intermediaries, for example proxies, if it's available.
7273	ServerAddressKey = attribute.Key("server.address")
7274
7275	// ServerPortKey is the attribute Key conforming to the "server.port"
7276	// semantic conventions. It represents the server port number.
7277	//
7278	// Type: int
7279	// RequirementLevel: Optional
7280	// Stability: stable
7281	// Examples: 80, 8080, 443
7282	// Note: When observed from the client side, and when communicating through
7283	// an intermediary, `server.port` SHOULD represent the server port behind
7284	// any intermediaries, for example proxies, if it's available.
7285	ServerPortKey = attribute.Key("server.port")
7286)
7287
7288// ServerAddress returns an attribute KeyValue conforming to the
7289// "server.address" semantic conventions. It represents the server domain name
7290// if available without reverse DNS lookup; otherwise, IP address or Unix
7291// domain socket name.
7292func ServerAddress(val string) attribute.KeyValue {
7293	return ServerAddressKey.String(val)
7294}
7295
7296// ServerPort returns an attribute KeyValue conforming to the "server.port"
7297// semantic conventions. It represents the server port number.
7298func ServerPort(val int) attribute.KeyValue {
7299	return ServerPortKey.Int(val)
7300}
7301
7302// A service instance.
7303const (
7304	// ServiceInstanceIDKey is the attribute Key conforming to the
7305	// "service.instance.id" semantic conventions. It represents the string ID
7306	// of the service instance.
7307	//
7308	// Type: string
7309	// RequirementLevel: Optional
7310	// Stability: experimental
7311	// Examples: '627cc493-f310-47de-96bd-71410b7dec09'
7312	// Note: MUST be unique for each instance of the same
7313	// `service.namespace,service.name` pair (in other words
7314	// `service.namespace,service.name,service.instance.id` triplet MUST be
7315	// globally unique). The ID helps to
7316	// distinguish instances of the same service that exist at the same time
7317	// (e.g. instances of a horizontally scaled
7318	// service).
7319	//
7320	// Implementations, such as SDKs, are recommended to generate a random
7321	// Version 1 or Version 4 [RFC
7322	// 4122](https://www.ietf.org/rfc/rfc4122.txt) UUID, but are free to use an
7323	// inherent unique ID as the source of
7324	// this value if stability is desirable. In that case, the ID SHOULD be
7325	// used as source of a UUID Version 5 and
7326	// SHOULD use the following UUID as the namespace:
7327	// `4d63009a-8d0f-11ee-aad7-4c796ed8e320`.
7328	//
7329	// UUIDs are typically recommended, as only an opaque value for the
7330	// purposes of identifying a service instance is
7331	// needed. Similar to what can be seen in the man page for the
7332	// [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/machine-id.html)
7333	// file, the underlying
7334	// data, such as pod name and namespace should be treated as confidential,
7335	// being the user's choice to expose it
7336	// or not via another resource attribute.
7337	//
7338	// For applications running behind an application server (like unicorn), we
7339	// do not recommend using one identifier
7340	// for all processes participating in the application. Instead, it's
7341	// recommended each division (e.g. a worker
7342	// thread in unicorn) to have its own instance.id.
7343	//
7344	// It's not recommended for a Collector to set `service.instance.id` if it
7345	// can't unambiguously determine the
7346	// service instance that is generating that telemetry. For instance,
7347	// creating an UUID based on `pod.name` will
7348	// likely be wrong, as the Collector might not know from which container
7349	// within that pod the telemetry originated.
7350	// However, Collectors can set the `service.instance.id` if they can
7351	// unambiguously determine the service instance
7352	// for that telemetry. This is typically the case for scraping receivers,
7353	// as they know the target address and
7354	// port.
7355	ServiceInstanceIDKey = attribute.Key("service.instance.id")
7356
7357	// ServiceNameKey is the attribute Key conforming to the "service.name"
7358	// semantic conventions. It represents the logical name of the service.
7359	//
7360	// Type: string
7361	// RequirementLevel: Optional
7362	// Stability: stable
7363	// Examples: 'shoppingcart'
7364	// Note: MUST be the same for all instances of horizontally scaled
7365	// services. If the value was not specified, SDKs MUST fallback to
7366	// `unknown_service:` concatenated with
7367	// [`process.executable.name`](process.md), e.g. `unknown_service:bash`. If
7368	// `process.executable.name` is not available, the value MUST be set to
7369	// `unknown_service`.
7370	ServiceNameKey = attribute.Key("service.name")
7371
7372	// ServiceNamespaceKey is the attribute Key conforming to the
7373	// "service.namespace" semantic conventions. It represents a namespace for
7374	// `service.name`.
7375	//
7376	// Type: string
7377	// RequirementLevel: Optional
7378	// Stability: experimental
7379	// Examples: 'Shop'
7380	// Note: A string value having a meaning that helps to distinguish a group
7381	// of services, for example the team name that owns a group of services.
7382	// `service.name` is expected to be unique within the same namespace. If
7383	// `service.namespace` is not specified in the Resource then `service.name`
7384	// is expected to be unique for all services that have no explicit
7385	// namespace defined (so the empty/unspecified namespace is simply one more
7386	// valid namespace). Zero-length namespace string is assumed equal to
7387	// unspecified namespace.
7388	ServiceNamespaceKey = attribute.Key("service.namespace")
7389
7390	// ServiceVersionKey is the attribute Key conforming to the
7391	// "service.version" semantic conventions. It represents the version string
7392	// of the service API or implementation. The format is not defined by these
7393	// conventions.
7394	//
7395	// Type: string
7396	// RequirementLevel: Optional
7397	// Stability: stable
7398	// Examples: '2.0.0', 'a01dbef8a'
7399	ServiceVersionKey = attribute.Key("service.version")
7400)
7401
7402// ServiceInstanceID returns an attribute KeyValue conforming to the
7403// "service.instance.id" semantic conventions. It represents the string ID of
7404// the service instance.
7405func ServiceInstanceID(val string) attribute.KeyValue {
7406	return ServiceInstanceIDKey.String(val)
7407}
7408
7409// ServiceName returns an attribute KeyValue conforming to the
7410// "service.name" semantic conventions. It represents the logical name of the
7411// service.
7412func ServiceName(val string) attribute.KeyValue {
7413	return ServiceNameKey.String(val)
7414}
7415
7416// ServiceNamespace returns an attribute KeyValue conforming to the
7417// "service.namespace" semantic conventions. It represents a namespace for
7418// `service.name`.
7419func ServiceNamespace(val string) attribute.KeyValue {
7420	return ServiceNamespaceKey.String(val)
7421}
7422
7423// ServiceVersion returns an attribute KeyValue conforming to the
7424// "service.version" semantic conventions. It represents the version string of
7425// the service API or implementation. The format is not defined by these
7426// conventions.
7427func ServiceVersion(val string) attribute.KeyValue {
7428	return ServiceVersionKey.String(val)
7429}
7430
7431// Session is defined as the period of time encompassing all activities
7432// performed by the application and the actions executed by the end user.
7433// Consequently, a Session is represented as a collection of Logs, Events, and
7434// Spans emitted by the Client Application throughout the Session's duration.
7435// Each Session is assigned a unique identifier, which is included as an
7436// attribute in the Logs, Events, and Spans generated during the Session's
7437// lifecycle.
7438// When a session reaches end of life, typically due to user inactivity or
7439// session timeout, a new session identifier will be assigned. The previous
7440// session identifier may be provided by the instrumentation so that telemetry
7441// backends can link the two sessions.
7442const (
7443	// SessionIDKey is the attribute Key conforming to the "session.id"
7444	// semantic conventions. It represents a unique id to identify a session.
7445	//
7446	// Type: string
7447	// RequirementLevel: Optional
7448	// Stability: experimental
7449	// Examples: '00112233-4455-6677-8899-aabbccddeeff'
7450	SessionIDKey = attribute.Key("session.id")
7451
7452	// SessionPreviousIDKey is the attribute Key conforming to the
7453	// "session.previous_id" semantic conventions. It represents the previous
7454	// `session.id` for this user, when known.
7455	//
7456	// Type: string
7457	// RequirementLevel: Optional
7458	// Stability: experimental
7459	// Examples: '00112233-4455-6677-8899-aabbccddeeff'
7460	SessionPreviousIDKey = attribute.Key("session.previous_id")
7461)
7462
7463// SessionID returns an attribute KeyValue conforming to the "session.id"
7464// semantic conventions. It represents a unique id to identify a session.
7465func SessionID(val string) attribute.KeyValue {
7466	return SessionIDKey.String(val)
7467}
7468
7469// SessionPreviousID returns an attribute KeyValue conforming to the
7470// "session.previous_id" semantic conventions. It represents the previous
7471// `session.id` for this user, when known.
7472func SessionPreviousID(val string) attribute.KeyValue {
7473	return SessionPreviousIDKey.String(val)
7474}
7475
7476// SignalR attributes
7477const (
7478	// SignalrConnectionStatusKey is the attribute Key conforming to the
7479	// "signalr.connection.status" semantic conventions. It represents the
7480	// signalR HTTP connection closure status.
7481	//
7482	// Type: Enum
7483	// RequirementLevel: Optional
7484	// Stability: stable
7485	// Examples: 'app_shutdown', 'timeout'
7486	SignalrConnectionStatusKey = attribute.Key("signalr.connection.status")
7487
7488	// SignalrTransportKey is the attribute Key conforming to the
7489	// "signalr.transport" semantic conventions. It represents the [SignalR
7490	// transport
7491	// type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)
7492	//
7493	// Type: Enum
7494	// RequirementLevel: Optional
7495	// Stability: stable
7496	// Examples: 'web_sockets', 'long_polling'
7497	SignalrTransportKey = attribute.Key("signalr.transport")
7498)
7499
7500var (
7501	// The connection was closed normally
7502	SignalrConnectionStatusNormalClosure = SignalrConnectionStatusKey.String("normal_closure")
7503	// The connection was closed due to a timeout
7504	SignalrConnectionStatusTimeout = SignalrConnectionStatusKey.String("timeout")
7505	// The connection was closed because the app is shutting down
7506	SignalrConnectionStatusAppShutdown = SignalrConnectionStatusKey.String("app_shutdown")
7507)
7508
7509var (
7510	// ServerSentEvents protocol
7511	SignalrTransportServerSentEvents = SignalrTransportKey.String("server_sent_events")
7512	// LongPolling protocol
7513	SignalrTransportLongPolling = SignalrTransportKey.String("long_polling")
7514	// WebSockets protocol
7515	SignalrTransportWebSockets = SignalrTransportKey.String("web_sockets")
7516)
7517
7518// These attributes may be used to describe the sender of a network
7519// exchange/packet. These should be used when there is no client/server
7520// relationship between the two sides, or when that relationship is unknown.
7521// This covers low-level network interactions (e.g. packet tracing) where you
7522// don't know if there was a connection or which side initiated it. This also
7523// covers unidirectional UDP flows and peer-to-peer communication where the
7524// "user-facing" surface of the protocol / API doesn't expose a clear notion of
7525// client and server.
7526const (
7527	// SourceAddressKey is the attribute Key conforming to the "source.address"
7528	// semantic conventions. It represents the source address - domain name if
7529	// available without reverse DNS lookup; otherwise, IP address or Unix
7530	// domain socket name.
7531	//
7532	// Type: string
7533	// RequirementLevel: Optional
7534	// Stability: experimental
7535	// Examples: 'source.example.com', '10.1.2.80', '/tmp/my.sock'
7536	// Note: When observed from the destination side, and when communicating
7537	// through an intermediary, `source.address` SHOULD represent the source
7538	// address behind any intermediaries, for example proxies, if it's
7539	// available.
7540	SourceAddressKey = attribute.Key("source.address")
7541
7542	// SourcePortKey is the attribute Key conforming to the "source.port"
7543	// semantic conventions. It represents the source port number
7544	//
7545	// Type: int
7546	// RequirementLevel: Optional
7547	// Stability: experimental
7548	// Examples: 3389, 2888
7549	SourcePortKey = attribute.Key("source.port")
7550)
7551
7552// SourceAddress returns an attribute KeyValue conforming to the
7553// "source.address" semantic conventions. It represents the source address -
7554// domain name if available without reverse DNS lookup; otherwise, IP address
7555// or Unix domain socket name.
7556func SourceAddress(val string) attribute.KeyValue {
7557	return SourceAddressKey.String(val)
7558}
7559
7560// SourcePort returns an attribute KeyValue conforming to the "source.port"
7561// semantic conventions. It represents the source port number
7562func SourcePort(val int) attribute.KeyValue {
7563	return SourcePortKey.Int(val)
7564}
7565
7566// Describes System attributes
7567const (
7568	// SystemDeviceKey is the attribute Key conforming to the "system.device"
7569	// semantic conventions. It represents the device identifier
7570	//
7571	// Type: string
7572	// RequirementLevel: Optional
7573	// Stability: experimental
7574	// Examples: '(identifier)'
7575	SystemDeviceKey = attribute.Key("system.device")
7576)
7577
7578// SystemDevice returns an attribute KeyValue conforming to the
7579// "system.device" semantic conventions. It represents the device identifier
7580func SystemDevice(val string) attribute.KeyValue {
7581	return SystemDeviceKey.String(val)
7582}
7583
7584// Describes System CPU attributes
7585const (
7586	// SystemCPULogicalNumberKey is the attribute Key conforming to the
7587	// "system.cpu.logical_number" semantic conventions. It represents the
7588	// logical CPU number [0..n-1]
7589	//
7590	// Type: int
7591	// RequirementLevel: Optional
7592	// Stability: experimental
7593	// Examples: 1
7594	SystemCPULogicalNumberKey = attribute.Key("system.cpu.logical_number")
7595
7596	// SystemCPUStateKey is the attribute Key conforming to the
7597	// "system.cpu.state" semantic conventions. It represents the state of the
7598	// CPU
7599	//
7600	// Type: Enum
7601	// RequirementLevel: Optional
7602	// Stability: experimental
7603	// Examples: 'idle', 'interrupt'
7604	SystemCPUStateKey = attribute.Key("system.cpu.state")
7605)
7606
7607var (
7608	// user
7609	SystemCPUStateUser = SystemCPUStateKey.String("user")
7610	// system
7611	SystemCPUStateSystem = SystemCPUStateKey.String("system")
7612	// nice
7613	SystemCPUStateNice = SystemCPUStateKey.String("nice")
7614	// idle
7615	SystemCPUStateIdle = SystemCPUStateKey.String("idle")
7616	// iowait
7617	SystemCPUStateIowait = SystemCPUStateKey.String("iowait")
7618	// interrupt
7619	SystemCPUStateInterrupt = SystemCPUStateKey.String("interrupt")
7620	// steal
7621	SystemCPUStateSteal = SystemCPUStateKey.String("steal")
7622)
7623
7624// SystemCPULogicalNumber returns an attribute KeyValue conforming to the
7625// "system.cpu.logical_number" semantic conventions. It represents the logical
7626// CPU number [0..n-1]
7627func SystemCPULogicalNumber(val int) attribute.KeyValue {
7628	return SystemCPULogicalNumberKey.Int(val)
7629}
7630
7631// Describes System Memory attributes
7632const (
7633	// SystemMemoryStateKey is the attribute Key conforming to the
7634	// "system.memory.state" semantic conventions. It represents the memory
7635	// state
7636	//
7637	// Type: Enum
7638	// RequirementLevel: Optional
7639	// Stability: experimental
7640	// Examples: 'free', 'cached'
7641	SystemMemoryStateKey = attribute.Key("system.memory.state")
7642)
7643
7644var (
7645	// used
7646	SystemMemoryStateUsed = SystemMemoryStateKey.String("used")
7647	// free
7648	SystemMemoryStateFree = SystemMemoryStateKey.String("free")
7649	// shared
7650	SystemMemoryStateShared = SystemMemoryStateKey.String("shared")
7651	// buffers
7652	SystemMemoryStateBuffers = SystemMemoryStateKey.String("buffers")
7653	// cached
7654	SystemMemoryStateCached = SystemMemoryStateKey.String("cached")
7655)
7656
7657// Describes System Memory Paging attributes
7658const (
7659	// SystemPagingDirectionKey is the attribute Key conforming to the
7660	// "system.paging.direction" semantic conventions. It represents the paging
7661	// access direction
7662	//
7663	// Type: Enum
7664	// RequirementLevel: Optional
7665	// Stability: experimental
7666	// Examples: 'in'
7667	SystemPagingDirectionKey = attribute.Key("system.paging.direction")
7668
7669	// SystemPagingStateKey is the attribute Key conforming to the
7670	// "system.paging.state" semantic conventions. It represents the memory
7671	// paging state
7672	//
7673	// Type: Enum
7674	// RequirementLevel: Optional
7675	// Stability: experimental
7676	// Examples: 'free'
7677	SystemPagingStateKey = attribute.Key("system.paging.state")
7678
7679	// SystemPagingTypeKey is the attribute Key conforming to the
7680	// "system.paging.type" semantic conventions. It represents the memory
7681	// paging type
7682	//
7683	// Type: Enum
7684	// RequirementLevel: Optional
7685	// Stability: experimental
7686	// Examples: 'minor'
7687	SystemPagingTypeKey = attribute.Key("system.paging.type")
7688)
7689
7690var (
7691	// in
7692	SystemPagingDirectionIn = SystemPagingDirectionKey.String("in")
7693	// out
7694	SystemPagingDirectionOut = SystemPagingDirectionKey.String("out")
7695)
7696
7697var (
7698	// used
7699	SystemPagingStateUsed = SystemPagingStateKey.String("used")
7700	// free
7701	SystemPagingStateFree = SystemPagingStateKey.String("free")
7702)
7703
7704var (
7705	// major
7706	SystemPagingTypeMajor = SystemPagingTypeKey.String("major")
7707	// minor
7708	SystemPagingTypeMinor = SystemPagingTypeKey.String("minor")
7709)
7710
7711// Describes Filesystem attributes
7712const (
7713	// SystemFilesystemModeKey is the attribute Key conforming to the
7714	// "system.filesystem.mode" semantic conventions. It represents the
7715	// filesystem mode
7716	//
7717	// Type: string
7718	// RequirementLevel: Optional
7719	// Stability: experimental
7720	// Examples: 'rw, ro'
7721	SystemFilesystemModeKey = attribute.Key("system.filesystem.mode")
7722
7723	// SystemFilesystemMountpointKey is the attribute Key conforming to the
7724	// "system.filesystem.mountpoint" semantic conventions. It represents the
7725	// filesystem mount path
7726	//
7727	// Type: string
7728	// RequirementLevel: Optional
7729	// Stability: experimental
7730	// Examples: '/mnt/data'
7731	SystemFilesystemMountpointKey = attribute.Key("system.filesystem.mountpoint")
7732
7733	// SystemFilesystemStateKey is the attribute Key conforming to the
7734	// "system.filesystem.state" semantic conventions. It represents the
7735	// filesystem state
7736	//
7737	// Type: Enum
7738	// RequirementLevel: Optional
7739	// Stability: experimental
7740	// Examples: 'used'
7741	SystemFilesystemStateKey = attribute.Key("system.filesystem.state")
7742
7743	// SystemFilesystemTypeKey is the attribute Key conforming to the
7744	// "system.filesystem.type" semantic conventions. It represents the
7745	// filesystem type
7746	//
7747	// Type: Enum
7748	// RequirementLevel: Optional
7749	// Stability: experimental
7750	// Examples: 'ext4'
7751	SystemFilesystemTypeKey = attribute.Key("system.filesystem.type")
7752)
7753
7754var (
7755	// used
7756	SystemFilesystemStateUsed = SystemFilesystemStateKey.String("used")
7757	// free
7758	SystemFilesystemStateFree = SystemFilesystemStateKey.String("free")
7759	// reserved
7760	SystemFilesystemStateReserved = SystemFilesystemStateKey.String("reserved")
7761)
7762
7763var (
7764	// fat32
7765	SystemFilesystemTypeFat32 = SystemFilesystemTypeKey.String("fat32")
7766	// exfat
7767	SystemFilesystemTypeExfat = SystemFilesystemTypeKey.String("exfat")
7768	// ntfs
7769	SystemFilesystemTypeNtfs = SystemFilesystemTypeKey.String("ntfs")
7770	// refs
7771	SystemFilesystemTypeRefs = SystemFilesystemTypeKey.String("refs")
7772	// hfsplus
7773	SystemFilesystemTypeHfsplus = SystemFilesystemTypeKey.String("hfsplus")
7774	// ext4
7775	SystemFilesystemTypeExt4 = SystemFilesystemTypeKey.String("ext4")
7776)
7777
7778// SystemFilesystemMode returns an attribute KeyValue conforming to the
7779// "system.filesystem.mode" semantic conventions. It represents the filesystem
7780// mode
7781func SystemFilesystemMode(val string) attribute.KeyValue {
7782	return SystemFilesystemModeKey.String(val)
7783}
7784
7785// SystemFilesystemMountpoint returns an attribute KeyValue conforming to
7786// the "system.filesystem.mountpoint" semantic conventions. It represents the
7787// filesystem mount path
7788func SystemFilesystemMountpoint(val string) attribute.KeyValue {
7789	return SystemFilesystemMountpointKey.String(val)
7790}
7791
7792// Describes Network attributes
7793const (
7794	// SystemNetworkStateKey is the attribute Key conforming to the
7795	// "system.network.state" semantic conventions. It represents a stateless
7796	// protocol MUST NOT set this attribute
7797	//
7798	// Type: Enum
7799	// RequirementLevel: Optional
7800	// Stability: experimental
7801	// Examples: 'close_wait'
7802	SystemNetworkStateKey = attribute.Key("system.network.state")
7803)
7804
7805var (
7806	// close
7807	SystemNetworkStateClose = SystemNetworkStateKey.String("close")
7808	// close_wait
7809	SystemNetworkStateCloseWait = SystemNetworkStateKey.String("close_wait")
7810	// closing
7811	SystemNetworkStateClosing = SystemNetworkStateKey.String("closing")
7812	// delete
7813	SystemNetworkStateDelete = SystemNetworkStateKey.String("delete")
7814	// established
7815	SystemNetworkStateEstablished = SystemNetworkStateKey.String("established")
7816	// fin_wait_1
7817	SystemNetworkStateFinWait1 = SystemNetworkStateKey.String("fin_wait_1")
7818	// fin_wait_2
7819	SystemNetworkStateFinWait2 = SystemNetworkStateKey.String("fin_wait_2")
7820	// last_ack
7821	SystemNetworkStateLastAck = SystemNetworkStateKey.String("last_ack")
7822	// listen
7823	SystemNetworkStateListen = SystemNetworkStateKey.String("listen")
7824	// syn_recv
7825	SystemNetworkStateSynRecv = SystemNetworkStateKey.String("syn_recv")
7826	// syn_sent
7827	SystemNetworkStateSynSent = SystemNetworkStateKey.String("syn_sent")
7828	// time_wait
7829	SystemNetworkStateTimeWait = SystemNetworkStateKey.String("time_wait")
7830)
7831
7832// Describes System Process attributes
7833const (
7834	// SystemProcessStatusKey is the attribute Key conforming to the
7835	// "system.process.status" semantic conventions. It represents the process
7836	// state, e.g., [Linux Process State
7837	// Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)
7838	//
7839	// Type: Enum
7840	// RequirementLevel: Optional
7841	// Stability: experimental
7842	// Examples: 'running'
7843	SystemProcessStatusKey = attribute.Key("system.process.status")
7844)
7845
7846var (
7847	// running
7848	SystemProcessStatusRunning = SystemProcessStatusKey.String("running")
7849	// sleeping
7850	SystemProcessStatusSleeping = SystemProcessStatusKey.String("sleeping")
7851	// stopped
7852	SystemProcessStatusStopped = SystemProcessStatusKey.String("stopped")
7853	// defunct
7854	SystemProcessStatusDefunct = SystemProcessStatusKey.String("defunct")
7855)
7856
7857// Attributes for telemetry SDK.
7858const (
7859	// TelemetrySDKLanguageKey is the attribute Key conforming to the
7860	// "telemetry.sdk.language" semantic conventions. It represents the
7861	// language of the telemetry SDK.
7862	//
7863	// Type: Enum
7864	// RequirementLevel: Required
7865	// Stability: stable
7866	TelemetrySDKLanguageKey = attribute.Key("telemetry.sdk.language")
7867
7868	// TelemetrySDKNameKey is the attribute Key conforming to the
7869	// "telemetry.sdk.name" semantic conventions. It represents the name of the
7870	// telemetry SDK as defined above.
7871	//
7872	// Type: string
7873	// RequirementLevel: Required
7874	// Stability: stable
7875	// Examples: 'opentelemetry'
7876	// Note: The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute
7877	// to `opentelemetry`.
7878	// If another SDK, like a fork or a vendor-provided implementation, is
7879	// used, this SDK MUST set the
7880	// `telemetry.sdk.name` attribute to the fully-qualified class or module
7881	// name of this SDK's main entry point
7882	// or another suitable identifier depending on the language.
7883	// The identifier `opentelemetry` is reserved and MUST NOT be used in this
7884	// case.
7885	// All custom identifiers SHOULD be stable across different versions of an
7886	// implementation.
7887	TelemetrySDKNameKey = attribute.Key("telemetry.sdk.name")
7888
7889	// TelemetrySDKVersionKey is the attribute Key conforming to the
7890	// "telemetry.sdk.version" semantic conventions. It represents the version
7891	// string of the telemetry SDK.
7892	//
7893	// Type: string
7894	// RequirementLevel: Required
7895	// Stability: stable
7896	// Examples: '1.2.3'
7897	TelemetrySDKVersionKey = attribute.Key("telemetry.sdk.version")
7898
7899	// TelemetryDistroNameKey is the attribute Key conforming to the
7900	// "telemetry.distro.name" semantic conventions. It represents the name of
7901	// the auto instrumentation agent or distribution, if used.
7902	//
7903	// Type: string
7904	// RequirementLevel: Optional
7905	// Stability: experimental
7906	// Examples: 'parts-unlimited-java'
7907	// Note: Official auto instrumentation agents and distributions SHOULD set
7908	// the `telemetry.distro.name` attribute to
7909	// a string starting with `opentelemetry-`, e.g.
7910	// `opentelemetry-java-instrumentation`.
7911	TelemetryDistroNameKey = attribute.Key("telemetry.distro.name")
7912
7913	// TelemetryDistroVersionKey is the attribute Key conforming to the
7914	// "telemetry.distro.version" semantic conventions. It represents the
7915	// version string of the auto instrumentation agent or distribution, if
7916	// used.
7917	//
7918	// Type: string
7919	// RequirementLevel: Optional
7920	// Stability: experimental
7921	// Examples: '1.2.3'
7922	TelemetryDistroVersionKey = attribute.Key("telemetry.distro.version")
7923)
7924
7925var (
7926	// cpp
7927	TelemetrySDKLanguageCPP = TelemetrySDKLanguageKey.String("cpp")
7928	// dotnet
7929	TelemetrySDKLanguageDotnet = TelemetrySDKLanguageKey.String("dotnet")
7930	// erlang
7931	TelemetrySDKLanguageErlang = TelemetrySDKLanguageKey.String("erlang")
7932	// go
7933	TelemetrySDKLanguageGo = TelemetrySDKLanguageKey.String("go")
7934	// java
7935	TelemetrySDKLanguageJava = TelemetrySDKLanguageKey.String("java")
7936	// nodejs
7937	TelemetrySDKLanguageNodejs = TelemetrySDKLanguageKey.String("nodejs")
7938	// php
7939	TelemetrySDKLanguagePHP = TelemetrySDKLanguageKey.String("php")
7940	// python
7941	TelemetrySDKLanguagePython = TelemetrySDKLanguageKey.String("python")
7942	// ruby
7943	TelemetrySDKLanguageRuby = TelemetrySDKLanguageKey.String("ruby")
7944	// rust
7945	TelemetrySDKLanguageRust = TelemetrySDKLanguageKey.String("rust")
7946	// swift
7947	TelemetrySDKLanguageSwift = TelemetrySDKLanguageKey.String("swift")
7948	// webjs
7949	TelemetrySDKLanguageWebjs = TelemetrySDKLanguageKey.String("webjs")
7950)
7951
7952// TelemetrySDKName returns an attribute KeyValue conforming to the
7953// "telemetry.sdk.name" semantic conventions. It represents the name of the
7954// telemetry SDK as defined above.
7955func TelemetrySDKName(val string) attribute.KeyValue {
7956	return TelemetrySDKNameKey.String(val)
7957}
7958
7959// TelemetrySDKVersion returns an attribute KeyValue conforming to the
7960// "telemetry.sdk.version" semantic conventions. It represents the version
7961// string of the telemetry SDK.
7962func TelemetrySDKVersion(val string) attribute.KeyValue {
7963	return TelemetrySDKVersionKey.String(val)
7964}
7965
7966// TelemetryDistroName returns an attribute KeyValue conforming to the
7967// "telemetry.distro.name" semantic conventions. It represents the name of the
7968// auto instrumentation agent or distribution, if used.
7969func TelemetryDistroName(val string) attribute.KeyValue {
7970	return TelemetryDistroNameKey.String(val)
7971}
7972
7973// TelemetryDistroVersion returns an attribute KeyValue conforming to the
7974// "telemetry.distro.version" semantic conventions. It represents the version
7975// string of the auto instrumentation agent or distribution, if used.
7976func TelemetryDistroVersion(val string) attribute.KeyValue {
7977	return TelemetryDistroVersionKey.String(val)
7978}
7979
7980// These attributes may be used for any operation to store information about a
7981// thread that started a span.
7982const (
7983	// ThreadIDKey is the attribute Key conforming to the "thread.id" semantic
7984	// conventions. It represents the current "managed" thread ID (as opposed
7985	// to OS thread ID).
7986	//
7987	// Type: int
7988	// RequirementLevel: Optional
7989	// Stability: experimental
7990	// Examples: 42
7991	ThreadIDKey = attribute.Key("thread.id")
7992
7993	// ThreadNameKey is the attribute Key conforming to the "thread.name"
7994	// semantic conventions. It represents the current thread name.
7995	//
7996	// Type: string
7997	// RequirementLevel: Optional
7998	// Stability: experimental
7999	// Examples: 'main'
8000	ThreadNameKey = attribute.Key("thread.name")
8001)
8002
8003// ThreadID returns an attribute KeyValue conforming to the "thread.id"
8004// semantic conventions. It represents the current "managed" thread ID (as
8005// opposed to OS thread ID).
8006func ThreadID(val int) attribute.KeyValue {
8007	return ThreadIDKey.Int(val)
8008}
8009
8010// ThreadName returns an attribute KeyValue conforming to the "thread.name"
8011// semantic conventions. It represents the current thread name.
8012func ThreadName(val string) attribute.KeyValue {
8013	return ThreadNameKey.String(val)
8014}
8015
8016// Semantic convention attributes in the TLS namespace.
8017const (
8018	// TLSCipherKey is the attribute Key conforming to the "tls.cipher"
8019	// semantic conventions. It represents the string indicating the
8020	// [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5)
8021	// used during the current connection.
8022	//
8023	// Type: string
8024	// RequirementLevel: Optional
8025	// Stability: experimental
8026	// Examples: 'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
8027	// 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256'
8028	// Note: The values allowed for `tls.cipher` MUST be one of the
8029	// `Descriptions` of the [registered TLS Cipher
8030	// Suits](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#table-tls-parameters-4).
8031	TLSCipherKey = attribute.Key("tls.cipher")
8032
8033	// TLSClientCertificateKey is the attribute Key conforming to the
8034	// "tls.client.certificate" semantic conventions. It represents the
8035	// pEM-encoded stand-alone certificate offered by the client. This is
8036	// usually mutually-exclusive of `client.certificate_chain` since this
8037	// value also exists in that list.
8038	//
8039	// Type: string
8040	// RequirementLevel: Optional
8041	// Stability: experimental
8042	// Examples: 'MII...'
8043	TLSClientCertificateKey = attribute.Key("tls.client.certificate")
8044
8045	// TLSClientCertificateChainKey is the attribute Key conforming to the
8046	// "tls.client.certificate_chain" semantic conventions. It represents the
8047	// array of PEM-encoded certificates that make up the certificate chain
8048	// offered by the client. This is usually mutually-exclusive of
8049	// `client.certificate` since that value should be the first certificate in
8050	// the chain.
8051	//
8052	// Type: string[]
8053	// RequirementLevel: Optional
8054	// Stability: experimental
8055	// Examples: 'MII...', 'MI...'
8056	TLSClientCertificateChainKey = attribute.Key("tls.client.certificate_chain")
8057
8058	// TLSClientHashMd5Key is the attribute Key conforming to the
8059	// "tls.client.hash.md5" semantic conventions. It represents the
8060	// certificate fingerprint using the MD5 digest of DER-encoded version of
8061	// certificate offered by the client. For consistency with other hash
8062	// values, this value should be formatted as an uppercase hash.
8063	//
8064	// Type: string
8065	// RequirementLevel: Optional
8066	// Stability: experimental
8067	// Examples: '0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC'
8068	TLSClientHashMd5Key = attribute.Key("tls.client.hash.md5")
8069
8070	// TLSClientHashSha1Key is the attribute Key conforming to the
8071	// "tls.client.hash.sha1" semantic conventions. It represents the
8072	// certificate fingerprint using the SHA1 digest of DER-encoded version of
8073	// certificate offered by the client. For consistency with other hash
8074	// values, this value should be formatted as an uppercase hash.
8075	//
8076	// Type: string
8077	// RequirementLevel: Optional
8078	// Stability: experimental
8079	// Examples: '9E393D93138888D288266C2D915214D1D1CCEB2A'
8080	TLSClientHashSha1Key = attribute.Key("tls.client.hash.sha1")
8081
8082	// TLSClientHashSha256Key is the attribute Key conforming to the
8083	// "tls.client.hash.sha256" semantic conventions. It represents the
8084	// certificate fingerprint using the SHA256 digest of DER-encoded version
8085	// of certificate offered by the client. For consistency with other hash
8086	// values, this value should be formatted as an uppercase hash.
8087	//
8088	// Type: string
8089	// RequirementLevel: Optional
8090	// Stability: experimental
8091	// Examples:
8092	// '0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0'
8093	TLSClientHashSha256Key = attribute.Key("tls.client.hash.sha256")
8094
8095	// TLSClientIssuerKey is the attribute Key conforming to the
8096	// "tls.client.issuer" semantic conventions. It represents the
8097	// distinguished name of
8098	// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6)
8099	// of the issuer of the x.509 certificate presented by the client.
8100	//
8101	// Type: string
8102	// RequirementLevel: Optional
8103	// Stability: experimental
8104	// Examples: 'CN=Example Root CA, OU=Infrastructure Team, DC=example,
8105	// DC=com'
8106	TLSClientIssuerKey = attribute.Key("tls.client.issuer")
8107
8108	// TLSClientJa3Key is the attribute Key conforming to the "tls.client.ja3"
8109	// semantic conventions. It represents a hash that identifies clients based
8110	// on how they perform an SSL/TLS handshake.
8111	//
8112	// Type: string
8113	// RequirementLevel: Optional
8114	// Stability: experimental
8115	// Examples: 'd4e5b18d6b55c71272893221c96ba240'
8116	TLSClientJa3Key = attribute.Key("tls.client.ja3")
8117
8118	// TLSClientNotAfterKey is the attribute Key conforming to the
8119	// "tls.client.not_after" semantic conventions. It represents the date/Time
8120	// indicating when client certificate is no longer considered valid.
8121	//
8122	// Type: string
8123	// RequirementLevel: Optional
8124	// Stability: experimental
8125	// Examples: '2021-01-01T00:00:00.000Z'
8126	TLSClientNotAfterKey = attribute.Key("tls.client.not_after")
8127
8128	// TLSClientNotBeforeKey is the attribute Key conforming to the
8129	// "tls.client.not_before" semantic conventions. It represents the
8130	// date/Time indicating when client certificate is first considered valid.
8131	//
8132	// Type: string
8133	// RequirementLevel: Optional
8134	// Stability: experimental
8135	// Examples: '1970-01-01T00:00:00.000Z'
8136	TLSClientNotBeforeKey = attribute.Key("tls.client.not_before")
8137
8138	// TLSClientServerNameKey is the attribute Key conforming to the
8139	// "tls.client.server_name" semantic conventions. It represents the also
8140	// called an SNI, this tells the server which hostname to which the client
8141	// is attempting to connect to.
8142	//
8143	// Type: string
8144	// RequirementLevel: Optional
8145	// Stability: experimental
8146	// Examples: 'opentelemetry.io'
8147	TLSClientServerNameKey = attribute.Key("tls.client.server_name")
8148
8149	// TLSClientSubjectKey is the attribute Key conforming to the
8150	// "tls.client.subject" semantic conventions. It represents the
8151	// distinguished name of subject of the x.509 certificate presented by the
8152	// client.
8153	//
8154	// Type: string
8155	// RequirementLevel: Optional
8156	// Stability: experimental
8157	// Examples: 'CN=myclient, OU=Documentation Team, DC=example, DC=com'
8158	TLSClientSubjectKey = attribute.Key("tls.client.subject")
8159
8160	// TLSClientSupportedCiphersKey is the attribute Key conforming to the
8161	// "tls.client.supported_ciphers" semantic conventions. It represents the
8162	// array of ciphers offered by the client during the client hello.
8163	//
8164	// Type: string[]
8165	// RequirementLevel: Optional
8166	// Stability: experimental
8167	// Examples: '"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
8168	// "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "..."'
8169	TLSClientSupportedCiphersKey = attribute.Key("tls.client.supported_ciphers")
8170
8171	// TLSCurveKey is the attribute Key conforming to the "tls.curve" semantic
8172	// conventions. It represents the string indicating the curve used for the
8173	// given cipher, when applicable
8174	//
8175	// Type: string
8176	// RequirementLevel: Optional
8177	// Stability: experimental
8178	// Examples: 'secp256r1'
8179	TLSCurveKey = attribute.Key("tls.curve")
8180
8181	// TLSEstablishedKey is the attribute Key conforming to the
8182	// "tls.established" semantic conventions. It represents the boolean flag
8183	// indicating if the TLS negotiation was successful and transitioned to an
8184	// encrypted tunnel.
8185	//
8186	// Type: boolean
8187	// RequirementLevel: Optional
8188	// Stability: experimental
8189	// Examples: True
8190	TLSEstablishedKey = attribute.Key("tls.established")
8191
8192	// TLSNextProtocolKey is the attribute Key conforming to the
8193	// "tls.next_protocol" semantic conventions. It represents the string
8194	// indicating the protocol being tunneled. Per the values in the [IANA
8195	// registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids),
8196	// this string should be lower case.
8197	//
8198	// Type: string
8199	// RequirementLevel: Optional
8200	// Stability: experimental
8201	// Examples: 'http/1.1'
8202	TLSNextProtocolKey = attribute.Key("tls.next_protocol")
8203
8204	// TLSProtocolNameKey is the attribute Key conforming to the
8205	// "tls.protocol.name" semantic conventions. It represents the normalized
8206	// lowercase protocol name parsed from original string of the negotiated
8207	// [SSL/TLS protocol
8208	// version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)
8209	//
8210	// Type: Enum
8211	// RequirementLevel: Optional
8212	// Stability: experimental
8213	TLSProtocolNameKey = attribute.Key("tls.protocol.name")
8214
8215	// TLSProtocolVersionKey is the attribute Key conforming to the
8216	// "tls.protocol.version" semantic conventions. It represents the numeric
8217	// part of the version parsed from the original string of the negotiated
8218	// [SSL/TLS protocol
8219	// version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)
8220	//
8221	// Type: string
8222	// RequirementLevel: Optional
8223	// Stability: experimental
8224	// Examples: '1.2', '3'
8225	TLSProtocolVersionKey = attribute.Key("tls.protocol.version")
8226
8227	// TLSResumedKey is the attribute Key conforming to the "tls.resumed"
8228	// semantic conventions. It represents the boolean flag indicating if this
8229	// TLS connection was resumed from an existing TLS negotiation.
8230	//
8231	// Type: boolean
8232	// RequirementLevel: Optional
8233	// Stability: experimental
8234	// Examples: True
8235	TLSResumedKey = attribute.Key("tls.resumed")
8236
8237	// TLSServerCertificateKey is the attribute Key conforming to the
8238	// "tls.server.certificate" semantic conventions. It represents the
8239	// pEM-encoded stand-alone certificate offered by the server. This is
8240	// usually mutually-exclusive of `server.certificate_chain` since this
8241	// value also exists in that list.
8242	//
8243	// Type: string
8244	// RequirementLevel: Optional
8245	// Stability: experimental
8246	// Examples: 'MII...'
8247	TLSServerCertificateKey = attribute.Key("tls.server.certificate")
8248
8249	// TLSServerCertificateChainKey is the attribute Key conforming to the
8250	// "tls.server.certificate_chain" semantic conventions. It represents the
8251	// array of PEM-encoded certificates that make up the certificate chain
8252	// offered by the server. This is usually mutually-exclusive of
8253	// `server.certificate` since that value should be the first certificate in
8254	// the chain.
8255	//
8256	// Type: string[]
8257	// RequirementLevel: Optional
8258	// Stability: experimental
8259	// Examples: 'MII...', 'MI...'
8260	TLSServerCertificateChainKey = attribute.Key("tls.server.certificate_chain")
8261
8262	// TLSServerHashMd5Key is the attribute Key conforming to the
8263	// "tls.server.hash.md5" semantic conventions. It represents the
8264	// certificate fingerprint using the MD5 digest of DER-encoded version of
8265	// certificate offered by the server. For consistency with other hash
8266	// values, this value should be formatted as an uppercase hash.
8267	//
8268	// Type: string
8269	// RequirementLevel: Optional
8270	// Stability: experimental
8271	// Examples: '0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC'
8272	TLSServerHashMd5Key = attribute.Key("tls.server.hash.md5")
8273
8274	// TLSServerHashSha1Key is the attribute Key conforming to the
8275	// "tls.server.hash.sha1" semantic conventions. It represents the
8276	// certificate fingerprint using the SHA1 digest of DER-encoded version of
8277	// certificate offered by the server. For consistency with other hash
8278	// values, this value should be formatted as an uppercase hash.
8279	//
8280	// Type: string
8281	// RequirementLevel: Optional
8282	// Stability: experimental
8283	// Examples: '9E393D93138888D288266C2D915214D1D1CCEB2A'
8284	TLSServerHashSha1Key = attribute.Key("tls.server.hash.sha1")
8285
8286	// TLSServerHashSha256Key is the attribute Key conforming to the
8287	// "tls.server.hash.sha256" semantic conventions. It represents the
8288	// certificate fingerprint using the SHA256 digest of DER-encoded version
8289	// of certificate offered by the server. For consistency with other hash
8290	// values, this value should be formatted as an uppercase hash.
8291	//
8292	// Type: string
8293	// RequirementLevel: Optional
8294	// Stability: experimental
8295	// Examples:
8296	// '0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0'
8297	TLSServerHashSha256Key = attribute.Key("tls.server.hash.sha256")
8298
8299	// TLSServerIssuerKey is the attribute Key conforming to the
8300	// "tls.server.issuer" semantic conventions. It represents the
8301	// distinguished name of
8302	// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6)
8303	// of the issuer of the x.509 certificate presented by the client.
8304	//
8305	// Type: string
8306	// RequirementLevel: Optional
8307	// Stability: experimental
8308	// Examples: 'CN=Example Root CA, OU=Infrastructure Team, DC=example,
8309	// DC=com'
8310	TLSServerIssuerKey = attribute.Key("tls.server.issuer")
8311
8312	// TLSServerJa3sKey is the attribute Key conforming to the
8313	// "tls.server.ja3s" semantic conventions. It represents a hash that
8314	// identifies servers based on how they perform an SSL/TLS handshake.
8315	//
8316	// Type: string
8317	// RequirementLevel: Optional
8318	// Stability: experimental
8319	// Examples: 'd4e5b18d6b55c71272893221c96ba240'
8320	TLSServerJa3sKey = attribute.Key("tls.server.ja3s")
8321
8322	// TLSServerNotAfterKey is the attribute Key conforming to the
8323	// "tls.server.not_after" semantic conventions. It represents the date/Time
8324	// indicating when server certificate is no longer considered valid.
8325	//
8326	// Type: string
8327	// RequirementLevel: Optional
8328	// Stability: experimental
8329	// Examples: '2021-01-01T00:00:00.000Z'
8330	TLSServerNotAfterKey = attribute.Key("tls.server.not_after")
8331
8332	// TLSServerNotBeforeKey is the attribute Key conforming to the
8333	// "tls.server.not_before" semantic conventions. It represents the
8334	// date/Time indicating when server certificate is first considered valid.
8335	//
8336	// Type: string
8337	// RequirementLevel: Optional
8338	// Stability: experimental
8339	// Examples: '1970-01-01T00:00:00.000Z'
8340	TLSServerNotBeforeKey = attribute.Key("tls.server.not_before")
8341
8342	// TLSServerSubjectKey is the attribute Key conforming to the
8343	// "tls.server.subject" semantic conventions. It represents the
8344	// distinguished name of subject of the x.509 certificate presented by the
8345	// server.
8346	//
8347	// Type: string
8348	// RequirementLevel: Optional
8349	// Stability: experimental
8350	// Examples: 'CN=myserver, OU=Documentation Team, DC=example, DC=com'
8351	TLSServerSubjectKey = attribute.Key("tls.server.subject")
8352)
8353
8354var (
8355	// ssl
8356	TLSProtocolNameSsl = TLSProtocolNameKey.String("ssl")
8357	// tls
8358	TLSProtocolNameTLS = TLSProtocolNameKey.String("tls")
8359)
8360
8361// TLSCipher returns an attribute KeyValue conforming to the "tls.cipher"
8362// semantic conventions. It represents the string indicating the
8363// [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used
8364// during the current connection.
8365func TLSCipher(val string) attribute.KeyValue {
8366	return TLSCipherKey.String(val)
8367}
8368
8369// TLSClientCertificate returns an attribute KeyValue conforming to the
8370// "tls.client.certificate" semantic conventions. It represents the pEM-encoded
8371// stand-alone certificate offered by the client. This is usually
8372// mutually-exclusive of `client.certificate_chain` since this value also
8373// exists in that list.
8374func TLSClientCertificate(val string) attribute.KeyValue {
8375	return TLSClientCertificateKey.String(val)
8376}
8377
8378// TLSClientCertificateChain returns an attribute KeyValue conforming to the
8379// "tls.client.certificate_chain" semantic conventions. It represents the array
8380// of PEM-encoded certificates that make up the certificate chain offered by
8381// the client. This is usually mutually-exclusive of `client.certificate` since
8382// that value should be the first certificate in the chain.
8383func TLSClientCertificateChain(val ...string) attribute.KeyValue {
8384	return TLSClientCertificateChainKey.StringSlice(val)
8385}
8386
8387// TLSClientHashMd5 returns an attribute KeyValue conforming to the
8388// "tls.client.hash.md5" semantic conventions. It represents the certificate
8389// fingerprint using the MD5 digest of DER-encoded version of certificate
8390// offered by the client. For consistency with other hash values, this value
8391// should be formatted as an uppercase hash.
8392func TLSClientHashMd5(val string) attribute.KeyValue {
8393	return TLSClientHashMd5Key.String(val)
8394}
8395
8396// TLSClientHashSha1 returns an attribute KeyValue conforming to the
8397// "tls.client.hash.sha1" semantic conventions. It represents the certificate
8398// fingerprint using the SHA1 digest of DER-encoded version of certificate
8399// offered by the client. For consistency with other hash values, this value
8400// should be formatted as an uppercase hash.
8401func TLSClientHashSha1(val string) attribute.KeyValue {
8402	return TLSClientHashSha1Key.String(val)
8403}
8404
8405// TLSClientHashSha256 returns an attribute KeyValue conforming to the
8406// "tls.client.hash.sha256" semantic conventions. It represents the certificate
8407// fingerprint using the SHA256 digest of DER-encoded version of certificate
8408// offered by the client. For consistency with other hash values, this value
8409// should be formatted as an uppercase hash.
8410func TLSClientHashSha256(val string) attribute.KeyValue {
8411	return TLSClientHashSha256Key.String(val)
8412}
8413
8414// TLSClientIssuer returns an attribute KeyValue conforming to the
8415// "tls.client.issuer" semantic conventions. It represents the distinguished
8416// name of
8417// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of
8418// the issuer of the x.509 certificate presented by the client.
8419func TLSClientIssuer(val string) attribute.KeyValue {
8420	return TLSClientIssuerKey.String(val)
8421}
8422
8423// TLSClientJa3 returns an attribute KeyValue conforming to the
8424// "tls.client.ja3" semantic conventions. It represents a hash that identifies
8425// clients based on how they perform an SSL/TLS handshake.
8426func TLSClientJa3(val string) attribute.KeyValue {
8427	return TLSClientJa3Key.String(val)
8428}
8429
8430// TLSClientNotAfter returns an attribute KeyValue conforming to the
8431// "tls.client.not_after" semantic conventions. It represents the date/Time
8432// indicating when client certificate is no longer considered valid.
8433func TLSClientNotAfter(val string) attribute.KeyValue {
8434	return TLSClientNotAfterKey.String(val)
8435}
8436
8437// TLSClientNotBefore returns an attribute KeyValue conforming to the
8438// "tls.client.not_before" semantic conventions. It represents the date/Time
8439// indicating when client certificate is first considered valid.
8440func TLSClientNotBefore(val string) attribute.KeyValue {
8441	return TLSClientNotBeforeKey.String(val)
8442}
8443
8444// TLSClientServerName returns an attribute KeyValue conforming to the
8445// "tls.client.server_name" semantic conventions. It represents the also called
8446// an SNI, this tells the server which hostname to which the client is
8447// attempting to connect to.
8448func TLSClientServerName(val string) attribute.KeyValue {
8449	return TLSClientServerNameKey.String(val)
8450}
8451
8452// TLSClientSubject returns an attribute KeyValue conforming to the
8453// "tls.client.subject" semantic conventions. It represents the distinguished
8454// name of subject of the x.509 certificate presented by the client.
8455func TLSClientSubject(val string) attribute.KeyValue {
8456	return TLSClientSubjectKey.String(val)
8457}
8458
8459// TLSClientSupportedCiphers returns an attribute KeyValue conforming to the
8460// "tls.client.supported_ciphers" semantic conventions. It represents the array
8461// of ciphers offered by the client during the client hello.
8462func TLSClientSupportedCiphers(val ...string) attribute.KeyValue {
8463	return TLSClientSupportedCiphersKey.StringSlice(val)
8464}
8465
8466// TLSCurve returns an attribute KeyValue conforming to the "tls.curve"
8467// semantic conventions. It represents the string indicating the curve used for
8468// the given cipher, when applicable
8469func TLSCurve(val string) attribute.KeyValue {
8470	return TLSCurveKey.String(val)
8471}
8472
8473// TLSEstablished returns an attribute KeyValue conforming to the
8474// "tls.established" semantic conventions. It represents the boolean flag
8475// indicating if the TLS negotiation was successful and transitioned to an
8476// encrypted tunnel.
8477func TLSEstablished(val bool) attribute.KeyValue {
8478	return TLSEstablishedKey.Bool(val)
8479}
8480
8481// TLSNextProtocol returns an attribute KeyValue conforming to the
8482// "tls.next_protocol" semantic conventions. It represents the string
8483// indicating the protocol being tunneled. Per the values in the [IANA
8484// registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids),
8485// this string should be lower case.
8486func TLSNextProtocol(val string) attribute.KeyValue {
8487	return TLSNextProtocolKey.String(val)
8488}
8489
8490// TLSProtocolVersion returns an attribute KeyValue conforming to the
8491// "tls.protocol.version" semantic conventions. It represents the numeric part
8492// of the version parsed from the original string of the negotiated [SSL/TLS
8493// protocol
8494// version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)
8495func TLSProtocolVersion(val string) attribute.KeyValue {
8496	return TLSProtocolVersionKey.String(val)
8497}
8498
8499// TLSResumed returns an attribute KeyValue conforming to the "tls.resumed"
8500// semantic conventions. It represents the boolean flag indicating if this TLS
8501// connection was resumed from an existing TLS negotiation.
8502func TLSResumed(val bool) attribute.KeyValue {
8503	return TLSResumedKey.Bool(val)
8504}
8505
8506// TLSServerCertificate returns an attribute KeyValue conforming to the
8507// "tls.server.certificate" semantic conventions. It represents the pEM-encoded
8508// stand-alone certificate offered by the server. This is usually
8509// mutually-exclusive of `server.certificate_chain` since this value also
8510// exists in that list.
8511func TLSServerCertificate(val string) attribute.KeyValue {
8512	return TLSServerCertificateKey.String(val)
8513}
8514
8515// TLSServerCertificateChain returns an attribute KeyValue conforming to the
8516// "tls.server.certificate_chain" semantic conventions. It represents the array
8517// of PEM-encoded certificates that make up the certificate chain offered by
8518// the server. This is usually mutually-exclusive of `server.certificate` since
8519// that value should be the first certificate in the chain.
8520func TLSServerCertificateChain(val ...string) attribute.KeyValue {
8521	return TLSServerCertificateChainKey.StringSlice(val)
8522}
8523
8524// TLSServerHashMd5 returns an attribute KeyValue conforming to the
8525// "tls.server.hash.md5" semantic conventions. It represents the certificate
8526// fingerprint using the MD5 digest of DER-encoded version of certificate
8527// offered by the server. For consistency with other hash values, this value
8528// should be formatted as an uppercase hash.
8529func TLSServerHashMd5(val string) attribute.KeyValue {
8530	return TLSServerHashMd5Key.String(val)
8531}
8532
8533// TLSServerHashSha1 returns an attribute KeyValue conforming to the
8534// "tls.server.hash.sha1" semantic conventions. It represents the certificate
8535// fingerprint using the SHA1 digest of DER-encoded version of certificate
8536// offered by the server. For consistency with other hash values, this value
8537// should be formatted as an uppercase hash.
8538func TLSServerHashSha1(val string) attribute.KeyValue {
8539	return TLSServerHashSha1Key.String(val)
8540}
8541
8542// TLSServerHashSha256 returns an attribute KeyValue conforming to the
8543// "tls.server.hash.sha256" semantic conventions. It represents the certificate
8544// fingerprint using the SHA256 digest of DER-encoded version of certificate
8545// offered by the server. For consistency with other hash values, this value
8546// should be formatted as an uppercase hash.
8547func TLSServerHashSha256(val string) attribute.KeyValue {
8548	return TLSServerHashSha256Key.String(val)
8549}
8550
8551// TLSServerIssuer returns an attribute KeyValue conforming to the
8552// "tls.server.issuer" semantic conventions. It represents the distinguished
8553// name of
8554// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of
8555// the issuer of the x.509 certificate presented by the client.
8556func TLSServerIssuer(val string) attribute.KeyValue {
8557	return TLSServerIssuerKey.String(val)
8558}
8559
8560// TLSServerJa3s returns an attribute KeyValue conforming to the
8561// "tls.server.ja3s" semantic conventions. It represents a hash that identifies
8562// servers based on how they perform an SSL/TLS handshake.
8563func TLSServerJa3s(val string) attribute.KeyValue {
8564	return TLSServerJa3sKey.String(val)
8565}
8566
8567// TLSServerNotAfter returns an attribute KeyValue conforming to the
8568// "tls.server.not_after" semantic conventions. It represents the date/Time
8569// indicating when server certificate is no longer considered valid.
8570func TLSServerNotAfter(val string) attribute.KeyValue {
8571	return TLSServerNotAfterKey.String(val)
8572}
8573
8574// TLSServerNotBefore returns an attribute KeyValue conforming to the
8575// "tls.server.not_before" semantic conventions. It represents the date/Time
8576// indicating when server certificate is first considered valid.
8577func TLSServerNotBefore(val string) attribute.KeyValue {
8578	return TLSServerNotBeforeKey.String(val)
8579}
8580
8581// TLSServerSubject returns an attribute KeyValue conforming to the
8582// "tls.server.subject" semantic conventions. It represents the distinguished
8583// name of subject of the x.509 certificate presented by the server.
8584func TLSServerSubject(val string) attribute.KeyValue {
8585	return TLSServerSubjectKey.String(val)
8586}
8587
8588// Attributes describing URL.
8589const (
8590	// URLDomainKey is the attribute Key conforming to the "url.domain"
8591	// semantic conventions. It represents the domain extracted from the
8592	// `url.full`, such as "opentelemetry.io".
8593	//
8594	// Type: string
8595	// RequirementLevel: Optional
8596	// Stability: experimental
8597	// Examples: 'www.foo.bar', 'opentelemetry.io', '3.12.167.2',
8598	// '[1080:0:0:0:8:800:200C:417A]'
8599	// Note: In some cases a URL may refer to an IP and/or port directly,
8600	// without a domain name. In this case, the IP address would go to the
8601	// domain field. If the URL contains a [literal IPv6
8602	// address](https://www.rfc-editor.org/rfc/rfc2732#section-2) enclosed by
8603	// `[` and `]`, the `[` and `]` characters should also be captured in the
8604	// domain field.
8605	URLDomainKey = attribute.Key("url.domain")
8606
8607	// URLExtensionKey is the attribute Key conforming to the "url.extension"
8608	// semantic conventions. It represents the file extension extracted from
8609	// the `url.full`, excluding the leading dot.
8610	//
8611	// Type: string
8612	// RequirementLevel: Optional
8613	// Stability: experimental
8614	// Examples: 'png', 'gz'
8615	// Note: The file extension is only set if it exists, as not every url has
8616	// a file extension. When the file name has multiple extensions
8617	// `example.tar.gz`, only the last one should be captured `gz`, not
8618	// `tar.gz`.
8619	URLExtensionKey = attribute.Key("url.extension")
8620
8621	// URLFragmentKey is the attribute Key conforming to the "url.fragment"
8622	// semantic conventions. It represents the [URI
8623	// fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component
8624	//
8625	// Type: string
8626	// RequirementLevel: Optional
8627	// Stability: stable
8628	// Examples: 'SemConv'
8629	URLFragmentKey = attribute.Key("url.fragment")
8630
8631	// URLFullKey is the attribute Key conforming to the "url.full" semantic
8632	// conventions. It represents the absolute URL describing a network
8633	// resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
8634	//
8635	// Type: string
8636	// RequirementLevel: Optional
8637	// Stability: stable
8638	// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv',
8639	// '//localhost'
8640	// Note: For network calls, URL usually has
8641	// `scheme://host[:port][path][?query][#fragment]` format, where the
8642	// fragment is not transmitted over HTTP, but if it is known, it SHOULD be
8643	// included nevertheless.
8644	// `url.full` MUST NOT contain credentials passed via URL in form of
8645	// `https://username:password@www.example.com/`. In such case username and
8646	// password SHOULD be redacted and attribute's value SHOULD be
8647	// `https://REDACTED:REDACTED@www.example.com/`.
8648	// `url.full` SHOULD capture the absolute URL when it is available (or can
8649	// be reconstructed). Sensitive content provided in `url.full` SHOULD be
8650	// scrubbed when instrumentations can identify it.
8651	URLFullKey = attribute.Key("url.full")
8652
8653	// URLOriginalKey is the attribute Key conforming to the "url.original"
8654	// semantic conventions. It represents the unmodified original URL as seen
8655	// in the event source.
8656	//
8657	// Type: string
8658	// RequirementLevel: Optional
8659	// Stability: experimental
8660	// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv',
8661	// 'search?q=OpenTelemetry'
8662	// Note: In network monitoring, the observed URL may be a full URL, whereas
8663	// in access logs, the URL is often just represented as a path. This field
8664	// is meant to represent the URL as it was observed, complete or not.
8665	// `url.original` might contain credentials passed via URL in form of
8666	// `https://username:password@www.example.com/`. In such case password and
8667	// username SHOULD NOT be redacted and attribute's value SHOULD remain the
8668	// same.
8669	URLOriginalKey = attribute.Key("url.original")
8670
8671	// URLPathKey is the attribute Key conforming to the "url.path" semantic
8672	// conventions. It represents the [URI
8673	// path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component
8674	//
8675	// Type: string
8676	// RequirementLevel: Optional
8677	// Stability: stable
8678	// Examples: '/search'
8679	// Note: Sensitive content provided in `url.path` SHOULD be scrubbed when
8680	// instrumentations can identify it.
8681	URLPathKey = attribute.Key("url.path")
8682
8683	// URLPortKey is the attribute Key conforming to the "url.port" semantic
8684	// conventions. It represents the port extracted from the `url.full`
8685	//
8686	// Type: int
8687	// RequirementLevel: Optional
8688	// Stability: experimental
8689	// Examples: 443
8690	URLPortKey = attribute.Key("url.port")
8691
8692	// URLQueryKey is the attribute Key conforming to the "url.query" semantic
8693	// conventions. It represents the [URI
8694	// query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component
8695	//
8696	// Type: string
8697	// RequirementLevel: Optional
8698	// Stability: stable
8699	// Examples: 'q=OpenTelemetry'
8700	// Note: Sensitive content provided in `url.query` SHOULD be scrubbed when
8701	// instrumentations can identify it.
8702	URLQueryKey = attribute.Key("url.query")
8703
8704	// URLRegisteredDomainKey is the attribute Key conforming to the
8705	// "url.registered_domain" semantic conventions. It represents the highest
8706	// registered url domain, stripped of the subdomain.
8707	//
8708	// Type: string
8709	// RequirementLevel: Optional
8710	// Stability: experimental
8711	// Examples: 'example.com', 'foo.co.uk'
8712	// Note: This value can be determined precisely with the [public suffix
8713	// list](http://publicsuffix.org). For example, the registered domain for
8714	// `foo.example.com` is `example.com`. Trying to approximate this by simply
8715	// taking the last two labels will not work well for TLDs such as `co.uk`.
8716	URLRegisteredDomainKey = attribute.Key("url.registered_domain")
8717
8718	// URLSchemeKey is the attribute Key conforming to the "url.scheme"
8719	// semantic conventions. It represents the [URI
8720	// scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component
8721	// identifying the used protocol.
8722	//
8723	// Type: string
8724	// RequirementLevel: Optional
8725	// Stability: stable
8726	// Examples: 'https', 'ftp', 'telnet'
8727	URLSchemeKey = attribute.Key("url.scheme")
8728
8729	// URLSubdomainKey is the attribute Key conforming to the "url.subdomain"
8730	// semantic conventions. It represents the subdomain portion of a fully
8731	// qualified domain name includes all of the names except the host name
8732	// under the registered_domain. In a partially qualified domain, or if the
8733	// qualification level of the full name cannot be determined, subdomain
8734	// contains all of the names below the registered domain.
8735	//
8736	// Type: string
8737	// RequirementLevel: Optional
8738	// Stability: experimental
8739	// Examples: 'east', 'sub2.sub1'
8740	// Note: The subdomain portion of `www.east.mydomain.co.uk` is `east`. If
8741	// the domain has multiple levels of subdomain, such as
8742	// `sub2.sub1.example.com`, the subdomain field should contain `sub2.sub1`,
8743	// with no trailing period.
8744	URLSubdomainKey = attribute.Key("url.subdomain")
8745
8746	// URLTemplateKey is the attribute Key conforming to the "url.template"
8747	// semantic conventions. It represents the low-cardinality template of an
8748	// [absolute path
8749	// reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
8750	//
8751	// Type: string
8752	// RequirementLevel: Optional
8753	// Stability: experimental
8754	// Examples: '/users/{id}', '/users/:id', '/users?id={id}'
8755	URLTemplateKey = attribute.Key("url.template")
8756
8757	// URLTopLevelDomainKey is the attribute Key conforming to the
8758	// "url.top_level_domain" semantic conventions. It represents the effective
8759	// top level domain (eTLD), also known as the domain suffix, is the last
8760	// part of the domain name. For example, the top level domain for
8761	// example.com is `com`.
8762	//
8763	// Type: string
8764	// RequirementLevel: Optional
8765	// Stability: experimental
8766	// Examples: 'com', 'co.uk'
8767	// Note: This value can be determined precisely with the [public suffix
8768	// list](http://publicsuffix.org).
8769	URLTopLevelDomainKey = attribute.Key("url.top_level_domain")
8770)
8771
8772// URLDomain returns an attribute KeyValue conforming to the "url.domain"
8773// semantic conventions. It represents the domain extracted from the
8774// `url.full`, such as "opentelemetry.io".
8775func URLDomain(val string) attribute.KeyValue {
8776	return URLDomainKey.String(val)
8777}
8778
8779// URLExtension returns an attribute KeyValue conforming to the
8780// "url.extension" semantic conventions. It represents the file extension
8781// extracted from the `url.full`, excluding the leading dot.
8782func URLExtension(val string) attribute.KeyValue {
8783	return URLExtensionKey.String(val)
8784}
8785
8786// URLFragment returns an attribute KeyValue conforming to the
8787// "url.fragment" semantic conventions. It represents the [URI
8788// fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component
8789func URLFragment(val string) attribute.KeyValue {
8790	return URLFragmentKey.String(val)
8791}
8792
8793// URLFull returns an attribute KeyValue conforming to the "url.full"
8794// semantic conventions. It represents the absolute URL describing a network
8795// resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
8796func URLFull(val string) attribute.KeyValue {
8797	return URLFullKey.String(val)
8798}
8799
8800// URLOriginal returns an attribute KeyValue conforming to the
8801// "url.original" semantic conventions. It represents the unmodified original
8802// URL as seen in the event source.
8803func URLOriginal(val string) attribute.KeyValue {
8804	return URLOriginalKey.String(val)
8805}
8806
8807// URLPath returns an attribute KeyValue conforming to the "url.path"
8808// semantic conventions. It represents the [URI
8809// path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component
8810func URLPath(val string) attribute.KeyValue {
8811	return URLPathKey.String(val)
8812}
8813
8814// URLPort returns an attribute KeyValue conforming to the "url.port"
8815// semantic conventions. It represents the port extracted from the `url.full`
8816func URLPort(val int) attribute.KeyValue {
8817	return URLPortKey.Int(val)
8818}
8819
8820// URLQuery returns an attribute KeyValue conforming to the "url.query"
8821// semantic conventions. It represents the [URI
8822// query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component
8823func URLQuery(val string) attribute.KeyValue {
8824	return URLQueryKey.String(val)
8825}
8826
8827// URLRegisteredDomain returns an attribute KeyValue conforming to the
8828// "url.registered_domain" semantic conventions. It represents the highest
8829// registered url domain, stripped of the subdomain.
8830func URLRegisteredDomain(val string) attribute.KeyValue {
8831	return URLRegisteredDomainKey.String(val)
8832}
8833
8834// URLScheme returns an attribute KeyValue conforming to the "url.scheme"
8835// semantic conventions. It represents the [URI
8836// scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component
8837// identifying the used protocol.
8838func URLScheme(val string) attribute.KeyValue {
8839	return URLSchemeKey.String(val)
8840}
8841
8842// URLSubdomain returns an attribute KeyValue conforming to the
8843// "url.subdomain" semantic conventions. It represents the subdomain portion of
8844// a fully qualified domain name includes all of the names except the host name
8845// under the registered_domain. In a partially qualified domain, or if the
8846// qualification level of the full name cannot be determined, subdomain
8847// contains all of the names below the registered domain.
8848func URLSubdomain(val string) attribute.KeyValue {
8849	return URLSubdomainKey.String(val)
8850}
8851
8852// URLTemplate returns an attribute KeyValue conforming to the
8853// "url.template" semantic conventions. It represents the low-cardinality
8854// template of an [absolute path
8855// reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
8856func URLTemplate(val string) attribute.KeyValue {
8857	return URLTemplateKey.String(val)
8858}
8859
8860// URLTopLevelDomain returns an attribute KeyValue conforming to the
8861// "url.top_level_domain" semantic conventions. It represents the effective top
8862// level domain (eTLD), also known as the domain suffix, is the last part of
8863// the domain name. For example, the top level domain for example.com is `com`.
8864func URLTopLevelDomain(val string) attribute.KeyValue {
8865	return URLTopLevelDomainKey.String(val)
8866}
8867
8868// Describes user-agent attributes.
8869const (
8870	// UserAgentNameKey is the attribute Key conforming to the
8871	// "user_agent.name" semantic conventions. It represents the name of the
8872	// user-agent extracted from original. Usually refers to the browser's
8873	// name.
8874	//
8875	// Type: string
8876	// RequirementLevel: Optional
8877	// Stability: experimental
8878	// Examples: 'Safari', 'YourApp'
8879	// Note: [Example](https://www.whatsmyua.info) of extracting browser's name
8880	// from original string. In the case of using a user-agent for non-browser
8881	// products, such as microservices with multiple names/versions inside the
8882	// `user_agent.original`, the most significant name SHOULD be selected. In
8883	// such a scenario it should align with `user_agent.version`
8884	UserAgentNameKey = attribute.Key("user_agent.name")
8885
8886	// UserAgentOriginalKey is the attribute Key conforming to the
8887	// "user_agent.original" semantic conventions. It represents the value of
8888	// the [HTTP
8889	// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent)
8890	// header sent by the client.
8891	//
8892	// Type: string
8893	// RequirementLevel: Optional
8894	// Stability: stable
8895	// Examples: 'CERN-LineMode/2.15 libwww/2.17b3', 'Mozilla/5.0 (iPhone; CPU
8896	// iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)
8897	// Version/14.1.2 Mobile/15E148 Safari/604.1', 'YourApp/1.0.0
8898	// grpc-java-okhttp/1.27.2'
8899	UserAgentOriginalKey = attribute.Key("user_agent.original")
8900
8901	// UserAgentVersionKey is the attribute Key conforming to the
8902	// "user_agent.version" semantic conventions. It represents the version of
8903	// the user-agent extracted from original. Usually refers to the browser's
8904	// version
8905	//
8906	// Type: string
8907	// RequirementLevel: Optional
8908	// Stability: experimental
8909	// Examples: '14.1.2', '1.0.0'
8910	// Note: [Example](https://www.whatsmyua.info) of extracting browser's
8911	// version from original string. In the case of using a user-agent for
8912	// non-browser products, such as microservices with multiple names/versions
8913	// inside the `user_agent.original`, the most significant version SHOULD be
8914	// selected. In such a scenario it should align with `user_agent.name`
8915	UserAgentVersionKey = attribute.Key("user_agent.version")
8916)
8917
8918// UserAgentName returns an attribute KeyValue conforming to the
8919// "user_agent.name" semantic conventions. It represents the name of the
8920// user-agent extracted from original. Usually refers to the browser's name.
8921func UserAgentName(val string) attribute.KeyValue {
8922	return UserAgentNameKey.String(val)
8923}
8924
8925// UserAgentOriginal returns an attribute KeyValue conforming to the
8926// "user_agent.original" semantic conventions. It represents the value of the
8927// [HTTP
8928// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent)
8929// header sent by the client.
8930func UserAgentOriginal(val string) attribute.KeyValue {
8931	return UserAgentOriginalKey.String(val)
8932}
8933
8934// UserAgentVersion returns an attribute KeyValue conforming to the
8935// "user_agent.version" semantic conventions. It represents the version of the
8936// user-agent extracted from original. Usually refers to the browser's version
8937func UserAgentVersion(val string) attribute.KeyValue {
8938	return UserAgentVersionKey.String(val)
8939}
8940
8941// The attributes used to describe the packaged software running the
8942// application code.
8943const (
8944	// WebEngineDescriptionKey is the attribute Key conforming to the
8945	// "webengine.description" semantic conventions. It represents the
8946	// additional description of the web engine (e.g. detailed version and
8947	// edition information).
8948	//
8949	// Type: string
8950	// RequirementLevel: Optional
8951	// Stability: experimental
8952	// Examples: 'WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) -
8953	// 2.2.2.Final'
8954	WebEngineDescriptionKey = attribute.Key("webengine.description")
8955
8956	// WebEngineNameKey is the attribute Key conforming to the "webengine.name"
8957	// semantic conventions. It represents the name of the web engine.
8958	//
8959	// Type: string
8960	// RequirementLevel: Optional
8961	// Stability: experimental
8962	// Examples: 'WildFly'
8963	WebEngineNameKey = attribute.Key("webengine.name")
8964
8965	// WebEngineVersionKey is the attribute Key conforming to the
8966	// "webengine.version" semantic conventions. It represents the version of
8967	// the web engine.
8968	//
8969	// Type: string
8970	// RequirementLevel: Optional
8971	// Stability: experimental
8972	// Examples: '21.0.0'
8973	WebEngineVersionKey = attribute.Key("webengine.version")
8974)
8975
8976// WebEngineDescription returns an attribute KeyValue conforming to the
8977// "webengine.description" semantic conventions. It represents the additional
8978// description of the web engine (e.g. detailed version and edition
8979// information).
8980func WebEngineDescription(val string) attribute.KeyValue {
8981	return WebEngineDescriptionKey.String(val)
8982}
8983
8984// WebEngineName returns an attribute KeyValue conforming to the
8985// "webengine.name" semantic conventions. It represents the name of the web
8986// engine.
8987func WebEngineName(val string) attribute.KeyValue {
8988	return WebEngineNameKey.String(val)
8989}
8990
8991// WebEngineVersion returns an attribute KeyValue conforming to the
8992// "webengine.version" semantic conventions. It represents the version of the
8993// web engine.
8994func WebEngineVersion(val string) attribute.KeyValue {
8995	return WebEngineVersionKey.String(val)
8996}