{#
  Copyright The OpenTelemetry Authors
  SPDX-License-Identifier: Apache-2.0

  This file is:
  - a Jinja template,
  - used to generate semantic conventions,
  - using weaver.

  For doc on the template syntax:
  https://jinja.palletsprojects.com/en/3.0.x/

  For doc on the semantic conventions:
  https://github.com/open-telemetry/semantic-conventions

  For doc on weaver:
  https://github.com/open-telemetry/weaver
#}
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * DO NOT EDIT, this is an Auto-generated file from:
 * buildscripts/semantic-convention/templates/registry/semantic_events-h.j2
 */
{# ========================================================================== #}
{#
    DESIGN NOTES:
    - Use the debug flag to dump the semantic convention data
      in the generated output, to inspect it.
#}
{# ========================================================================== #}

{% set debug = false %}

{% set file_name = ctx.output + (ctx.root_namespace | snake_case) ~ "_events.h" %}
{{ template.set_file_name(file_name) }}

{% set events = ctx.events | list %}

{# ========================================================================== #}

#pragma once

#include "opentelemetry/common/macros.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace semconv
{
namespace {{ ctx.root_namespace | snake_case }}
{

{% for event in events %}
    {% if debug %}
// DEBUG: {{ event }}
    {% endif %}
    {% if event is deprecated %}
{{ [event.brief, "\n", "@deprecated", event.deprecated, "\n", event.note] | comment(ident=2) }}
OPENTELEMETRY_DEPRECATED
    {% else %}
{{ [event.brief, "\n", event.note] | comment(ident=2) }}
    {% endif %}
static constexpr const char *k{{ event.name | pascal_case }} = "{{ event.name }}";

{% endfor %}

}
}
OPENTELEMETRY_END_NAMESPACE
