{%- for e in outline.enums() %} {%- if e.members().len() > 0 %} /// ## {{ e.title() }} /// /// {{ e.desc }} enum class {{ e.name() }} { {%- for m in e.members() %} /// ### {{ m.title() }} /// /// {{ m.desc() }} @SerialName("{{ m.name() }}") {{ m.name()|constantize }}, {%- endfor %} } {%- endif %} {%- endfor %} {%- for path_argument in outline.path_arguments() %} @Serializable data class {{ path_argument.name() }} { {%- for item in path_argument.items() %} val {{ item }}: String, {%- endfor %} } {%- endfor %} {%- for interface in outline.interfaces() %} {%- if interface.fields_optional_at_last().len() > 0 %} /** * **{{ interface.title() }}** * * {{ interface.desc() }} */ @Serializable data class {{ interface.name() }}{{ interface.generics_declaration() }}( {%- for field in interface.fields_optional_at_last() %} {{ maybe_any_prefix(field.type().unwrap_optional()) }}{{ maybe_underscore(field.name()) }}val {{ field.name()|escape_kotlin|deunderscore }}: {{ lookup.call(field.type().unwrap_optional()).unwrap()|type_annotation_kotlin }}{%- if field.type().is_optional() || interface.is_output_result() %}? = null{%- endif %}, {%- endfor %} ) {%- endif %} {%- endfor %} {%- for delegate in outline.delegates() %} class {{ delegate.name_with_conf(conf.class_name().to_string()) }}(headers: Map? = null) { private val _headers: Map? = headers {%- for namespace_item in delegate.namespace_items() %} {%- if !namespace_item.is_std() %} val {{ namespace_item.property_name() }}: {{ namespace_item.path().join(".") }} = {{ namespace_item.path().join(".") }}(_headers) {%- endif %} {%- endfor %} {%- for group_item in delegate.group_items() %} val {{ group_item.property_name() }}: {{ group_item.path().join(".") }} = {{ group_item.path().join(".") }}(_headers) {%- endfor %} {%- for request_item in delegate.request_items() %} suspend fun {{ request_item.name() }}({% if request_item.has_custom_url_args() %}Map pathArgs, {% endif %}{% if request_item.has_body_input() %}input: {{ lookup.call(request_item.input_type()).unwrap() }}{% endif %}, headers: Map? = null{% if !request_item.is_builtin() %}, query: String? = null{% endif %}): {{ lookup.call(request_item.output_type()).unwrap() }} { return jsonRequest("{{ request_item.method() }}", {% if request_item.has_custom_url_args() %}replacePathArguments({% endif %}"{{ request_item.path() }}"{% if request_item.has_custom_url_args() %}, pathArgs){% endif %}, {% if request_item.has_body_input() %}input{% else %}null{% endif %}, headers ?: _headers{% if !request_item.is_builtin() %}, query{% else %}, null{% endif %}) } {%- endfor %} } {% endfor %} {%- for namespace in namespace.namespaces().values() %} {{ render_namespace(namespace, conf, main_namespace) }} {%- endfor %}