{{>licenseInfo}} defmodule {{moduleName}}.Api.{{classname}} do @moduledoc """ API calls for all endpoints tagged `{{baseName}}`. """ alias {{moduleName}}.Connection import {{moduleName}}.RequestBuilder {{#operations}} {{#operation}} @doc """ {{#summary}} {{summary}} {{/summary}} {{#notes}} {{notes}} {{/notes}} ## Parameters - connection ({{moduleName}}.Connection): Connection to server {{#allParams}}{{#required}} - {{#underscored}}{{paramName}}{{/underscored}} ({{dataType}}): {{description}} {{/required}}{{/allParams}} - opts (KeywordList): [optional] Optional parameters {{#allParams}}{{^required}} - {{#underscored}}:{{paramName}}{{/underscored}} ({{dataType}}): {{description}} {{/required}}{{/allParams}} ## Returns {:ok, {{#isListContainer}}[%{{returnBaseType}}{}, ...]{{/isListContainer}}{{#isMapContainer}}%{}{{/isMapContainer}}{{^returnType}}%{}{{/returnType}}{{#returnSimpleType}}%{{#returnType}}{{#isMapContainer}}{{/isMapContainer}}{{moduleName}}.Model.{{{returnType}}}{{/returnType}}{}{{/returnSimpleType}}} on success {:error, info} on failure """ {{typespec}} def {{#underscored}}{{operationId}}{{/underscored}}(connection, {{#allParams}}{{#required}}{{#underscored}}{{paramName}}{{/underscored}}, {{/required}}{{/allParams}}{{^hasOptionalParams}}_{{/hasOptionalParams}}opts \\ []) do {{#hasOptionalParams}} optional_params = %{ {{#allParams}}{{^required}}{{^isPathParam}}:"{{baseName}}" => {{#isBodyParam}}:body{{/isBodyParam}}{{#isFormParam}}:form{{/isFormParam}}{{#isQueryParam}}:query{{/isQueryParam}}{{#isHeaderParam}}:headers{{/isHeaderParam}}{{/isPathParam}}{{#hasMore}}, {{/hasMore}}{{/required}}{{/allParams}} } {{/hasOptionalParams}} %{} |> method(:{{#underscored}}{{httpMethod}}{{/underscored}}) |> url("{{replacedPathName}}") {{#allParams}} {{#required}} {{^isPathParam}} |> add_param({{#isBodyParam}}:body{{/isBodyParam}}{{#isFormParam}}{{#isMultipart}}{{#isFile}}:file{{/isFile}}{{^isFile}}:form{{/isFile}}{{/isMultipart}}{{^isMultipart}}:form{{/isMultipart}}{{/isFormParam}}{{#isQueryParam}}:query{{/isQueryParam}}{{#isHeaderParam}}:headers{{/isHeaderParam}}, :"{{baseName}}", {{#underscored}}{{paramName}}{{/underscored}}) {{/isPathParam}} {{/required}} {{/allParams}} {{#hasOptionalParams}} |> add_optional_params(optional_params, opts) {{/hasOptionalParams}} |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode({{decodedStruct}}) end {{/operation}} {{/operations}} end