From f4a25edac92a8be5da0ffce924e5abc5d8ee6dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20R=C3=A5nge?= Date: Mon, 21 Aug 2023 11:12:09 +0200 Subject: [PATCH] Added ReadAndWrite example --- .config/dotnet-tools.json | 12 + .gitignore | 5 + Examples/ReadAndWrite/.graphqlrc.json | 12 + .../AuthenticationApi/DevincoConnect.cs | 1138 + .../AuthenticationApi/DevincoConnect.json | 454 + .../ReadAndWrite/AuthenticationApi/nswag.json | 100 + Examples/ReadAndWrite/GQLQueries.graphql | 35 + .../Generated/CWGQLClient.Client.cs | 1640 + Examples/ReadAndWrite/GlobalUsing.cs | 10 + Examples/ReadAndWrite/Program.cs | 188 + Examples/ReadAndWrite/README.md | 288 + Examples/ReadAndWrite/ReadAndWrite.csproj | 26 + Examples/ReadAndWrite/ReadAndWrite.sln | 25 + .../ReadAndWrite/WriteApi/ContractingWorks.cs | 81319 ++++++++++++++++ .../WriteApi/ContractingWorks.json | 55916 +++++++++++ .../WriteApi/ContractingWorksExt.cs | 53 + Examples/ReadAndWrite/WriteApi/nswag.json | 100 + Examples/ReadAndWrite/appsettings.json | 10 + Examples/ReadAndWrite/packages.lock.json | 371 + Examples/ReadAndWrite/schema.graphql | 10357 ++ README.md | 4 + 21 files changed, 152063 insertions(+) create mode 100644 .config/dotnet-tools.json create mode 100644 .gitignore create mode 100644 Examples/ReadAndWrite/.graphqlrc.json create mode 100644 Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.cs create mode 100644 Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.json create mode 100644 Examples/ReadAndWrite/AuthenticationApi/nswag.json create mode 100644 Examples/ReadAndWrite/GQLQueries.graphql create mode 100644 Examples/ReadAndWrite/Generated/CWGQLClient.Client.cs create mode 100644 Examples/ReadAndWrite/GlobalUsing.cs create mode 100644 Examples/ReadAndWrite/Program.cs create mode 100644 Examples/ReadAndWrite/README.md create mode 100644 Examples/ReadAndWrite/ReadAndWrite.csproj create mode 100644 Examples/ReadAndWrite/ReadAndWrite.sln create mode 100644 Examples/ReadAndWrite/WriteApi/ContractingWorks.cs create mode 100644 Examples/ReadAndWrite/WriteApi/ContractingWorks.json create mode 100644 Examples/ReadAndWrite/WriteApi/ContractingWorksExt.cs create mode 100644 Examples/ReadAndWrite/WriteApi/nswag.json create mode 100644 Examples/ReadAndWrite/appsettings.json create mode 100644 Examples/ReadAndWrite/packages.lock.json create mode 100644 Examples/ReadAndWrite/schema.graphql diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 0000000..4e75fbb --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "strawberryshake.tools": { + "version": "13.4.0", + "commands": [ + "dotnet-graphql" + ] + } + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..866ffef --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.vs/ +.vscode/ +bin/ +obj/ +*.user \ No newline at end of file diff --git a/Examples/ReadAndWrite/.graphqlrc.json b/Examples/ReadAndWrite/.graphqlrc.json new file mode 100644 index 0000000..e48bece --- /dev/null +++ b/Examples/ReadAndWrite/.graphqlrc.json @@ -0,0 +1,12 @@ +{ + "schema": "schema.graphql", + "documents": "**/*.graphql", + "extensions": { + "strawberryShake": { + "name": "CWGQLClient", + "namespace": "ContractingWorks.ReadApi", + "url": "https://contracting-extest-clientapi-graphql.azurewebsites.net/client/001-demo-pog/graphql", + "dependencyInjection": true + } + } +} diff --git a/Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.cs b/Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.cs new file mode 100644 index 0000000..4d0a98a --- /dev/null +++ b/Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.cs @@ -0,0 +1,1138 @@ +//---------------------- +// +// Generated using the NSwag toolchain v13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) +// +//---------------------- + +#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." +#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." +#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' +#pragma warning disable 612 // Disable "CS0612 '...' is obsolete" +#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... +#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." +#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" +#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" +#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" +#pragma warning disable 8604 // Disable "CS8604 Possible null reference argument for parameter" + +namespace ContractingWorks.AuthenticationApi +{ + using System = global::System; + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DevincoConnectClient + { + private string _baseUrl = ""; + private System.Net.Http.HttpClient _httpClient; + private System.Lazy _settings; + + public DevincoConnectClient(string baseUrl, System.Net.Http.HttpClient httpClient) + { + BaseUrl = baseUrl; + _httpClient = httpClient; + _settings = new System.Lazy(CreateSerializerSettings, true); + } + + private System.Text.Json.JsonSerializerOptions CreateSerializerSettings() + { + var settings = new System.Text.Json.JsonSerializerOptions(); + UpdateJsonSerializerSettings(settings); + return settings; + } + + public string BaseUrl + { + get { return _baseUrl; } + set { _baseUrl = value; } + } + + public System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get { return _settings.Value; } } + + partial void UpdateJsonSerializerSettings(System.Text.Json.JsonSerializerOptions settings); + + partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); + partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); + partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task AdminPingAsync() + { + return AdminPingAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task AdminPingAsync(System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Admin/Ping"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task AdminStatusCheckAsync() + { + return AdminStatusCheckAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task AdminStatusCheckAsync(System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Admin/StatusCheck"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task AdminPingAuthAsync() + { + return AdminPingAuthAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task AdminPingAuthAsync(System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Admin/PingAuth"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth policies: IdentityServerAccessToken, Integration) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task AdminIntegrationPingAuthAsync() + { + return AdminIntegrationPingAuthAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth policies: IdentityServerAccessToken, Integration) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task AdminIntegrationPingAuthAsync(System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Admin/IntegrationPingAuth"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TokenGenerateAccessTokenAsJsonAsync(GenerateToken body) + { + return TokenGenerateAccessTokenAsJsonAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TokenGenerateAccessTokenAsJsonAsync(GenerateToken body, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/GenerateAccessTokenAsJson"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth roles: hostadmin) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TokenGenerateAccessTokenWithLifetimeAsJsonAsync(GenerateTokenWithLifetime body) + { + return TokenGenerateAccessTokenWithLifetimeAsJsonAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth roles: hostadmin) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TokenGenerateAccessTokenWithLifetimeAsJsonAsync(GenerateTokenWithLifetime body, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/GenerateAccessTokenWithLifetimeAsJson"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TokenGenerateAccessTokenPostAsync(GenerateToken body) + { + return TokenGenerateAccessTokenPostAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TokenGenerateAccessTokenPostAsync(GenerateToken body, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/GenerateAccessToken"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + [System.Obsolete] + public virtual System.Threading.Tasks.Task TokenGenerateAccessTokenGetAsync(string subjectId, string apiKey, int? clientId, string tenantId) + { + return TokenGenerateAccessTokenGetAsync(subjectId, apiKey, clientId, tenantId, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + [System.Obsolete] + public virtual async System.Threading.Tasks.Task TokenGenerateAccessTokenGetAsync(string subjectId, string apiKey, int? clientId, string tenantId, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/GenerateAccessToken?"); + if (subjectId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("subjectId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(subjectId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (apiKey != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiKey") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiKey, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (clientId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("clientId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(clientId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (tenantId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("tenantId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(tenantId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TokenGenerateAccessTokenFromCacheAsync(GenerateToken body) + { + return TokenGenerateAccessTokenFromCacheAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TokenGenerateAccessTokenFromCacheAsync(GenerateToken body, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/GenerateAccessTokenFromCache"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TokenGenerateAccessTokenFromCacheAsJsonAsync(GenerateToken body) + { + return TokenGenerateAccessTokenFromCacheAsJsonAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TokenGenerateAccessTokenFromCacheAsJsonAsync(GenerateToken body, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/GenerateAccessTokenFromCacheAsJson"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TokenCheckAccessTokenAsync(AccessTokenInput body) + { + return TokenCheckAccessTokenAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TokenCheckAccessTokenAsync(AccessTokenInput body, System.Threading.CancellationToken cancellationToken) + { + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/Token/CheckAccessToken"); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) + { + this.Object = responseObject; + this.Text = responseText; + } + + public T Object { get; } + + public string Text { get; } + } + + public bool ReadResponseAsString { get; set; } + + protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) + { + if (response == null || response.Content == null) + { + return new ObjectResponseResult(default(T), string.Empty); + } + + if (ReadResponseAsString) + { + var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + var typedBody = System.Text.Json.JsonSerializer.Deserialize(responseText, JsonSerializerSettings); + return new ObjectResponseResult(typedBody, responseText); + } + catch (System.Text.Json.JsonException exception) + { + var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; + throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); + } + } + else + { + try + { + using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) + { + var typedBody = await System.Text.Json.JsonSerializer.DeserializeAsync(responseStream, JsonSerializerSettings, cancellationToken).ConfigureAwait(false); + return new ObjectResponseResult(typedBody, string.Empty); + } + } + catch (System.Text.Json.JsonException exception) + { + var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; + throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); + } + } + } + + private string ConvertToString(object value, System.Globalization.CultureInfo cultureInfo) + { + if (value == null) + { + return ""; + } + + if (value is System.Enum) + { + var name = System.Enum.GetName(value.GetType(), value); + if (name != null) + { + var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); + if (field != null) + { + var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) + as System.Runtime.Serialization.EnumMemberAttribute; + if (attribute != null) + { + return attribute.Value != null ? attribute.Value : name; + } + } + + var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); + return converted == null ? string.Empty : converted; + } + } + else if (value is bool) + { + return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); + } + else if (value is byte[]) + { + return System.Convert.ToBase64String((byte[]) value); + } + else if (value.GetType().IsArray) + { + var array = System.Linq.Enumerable.OfType((System.Array) value); + return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); + } + + var result = System.Convert.ToString(value, cultureInfo); + return result == null ? "" : result; + } + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GenerateToken + { + + [System.Text.Json.Serialization.JsonPropertyName("subjectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SubjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("apiKey")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ApiKey { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("clientId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ClientId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("tenantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TenantId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GenerateTokenWithLifetime + { + + [System.Text.Json.Serialization.JsonPropertyName("subjectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SubjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("apiKey")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ApiKey { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("clientId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ClientId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("tenantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TenantId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("tokenLifetime")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TokenLifetime { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AccessTokenInput + { + + [System.Text.Json.Serialization.JsonPropertyName("accessToken")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AccessToken { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AccessTokenItem + { + + [System.Text.Json.Serialization.JsonPropertyName("accessToken")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AccessToken { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validFromUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ValidFromUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validToUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ValidToUTC { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AccessTokenValidity + { + + [System.Text.Json.Serialization.JsonPropertyName("isValid")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsValid { get; set; } + + } + + + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ApiException : System.Exception + { + public int StatusCode { get; private set; } + + public string Response { get; private set; } + + public System.Collections.Generic.IReadOnlyDictionary> Headers { get; private set; } + + public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Exception innerException) + : base(message + "\n\nStatus: " + statusCode + "\nResponse: \n" + ((response == null) ? "(null)" : response.Substring(0, response.Length >= 512 ? 512 : response.Length)), innerException) + { + StatusCode = statusCode; + Response = response; + Headers = headers; + } + + public override string ToString() + { + return string.Format("HTTP Response: \n\n{0}\n\n{1}", Response, base.ToString()); + } + } + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ApiException : ApiException + { + public TResult Result { get; private set; } + + public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, TResult result, System.Exception innerException) + : base(message, statusCode, response, headers, innerException) + { + Result = result; + } + } + +} + +#pragma warning restore 108 +#pragma warning restore 114 +#pragma warning restore 472 +#pragma warning restore 612 +#pragma warning restore 1573 +#pragma warning restore 1591 +#pragma warning restore 8073 +#pragma warning restore 3016 +#pragma warning restore 8603 +#pragma warning restore 8604 \ No newline at end of file diff --git a/Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.json b/Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.json new file mode 100644 index 0000000..6736556 --- /dev/null +++ b/Examples/ReadAndWrite/AuthenticationApi/DevincoConnect.json @@ -0,0 +1,454 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Devinco.Connect (3.0.0.2)", + "description": "Server build number: 20230616.1", + "version": "v1" + }, + "paths": { + "/Admin/Ping": { + "get": { + "tags": [ + "Admin" + ], + "operationId": "Ping", + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/Admin/StatusCheck": { + "get": { + "tags": [ + "Admin" + ], + "operationId": "StatusCheck", + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/Admin/PingAuth": { + "get": { + "tags": [ + "Admin" + ], + "summary": " (Auth)", + "operationId": "PingAuth", + "responses": { + "200": { + "description": "Success" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/Admin/IntegrationPingAuth": { + "get": { + "tags": [ + "Admin" + ], + "summary": " (Auth policies: IdentityServerAccessToken, Integration)", + "operationId": "IntegrationPingAuth", + "responses": { + "200": { + "description": "Success" + } + }, + "security": [ + { + "oauth2": [ + "Integration", + "IdentityServerAccessToken" + ] + } + ] + } + }, + "/Token/GenerateAccessTokenAsJson": { + "post": { + "tags": [ + "Token" + ], + "operationId": "GenerateAccessTokenAsJson", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenItem" + } + } + } + } + } + } + }, + "/Token/GenerateAccessTokenWithLifetimeAsJson": { + "post": { + "tags": [ + "Token" + ], + "summary": " (Auth roles: hostadmin)", + "operationId": "GenerateAccessTokenWithLifetimeAsJson", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateTokenWithLifetime" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateTokenWithLifetime" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateTokenWithLifetime" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenItem" + } + } + } + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/Token/GenerateAccessToken": { + "post": { + "tags": [ + "Token" + ], + "operationId": "GenerateAccessTokenPOST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "Token" + ], + "operationId": "GenerateAccessTokenGET", + "parameters": [ + { + "name": "subjectId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "apiKey", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "tenantId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "deprecated": true + } + }, + "/Token/GenerateAccessTokenFromCache": { + "post": { + "tags": [ + "Token" + ], + "operationId": "GenerateAccessTokenFromCache", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/Token/GenerateAccessTokenFromCacheAsJson": { + "post": { + "tags": [ + "Token" + ], + "operationId": "GenerateAccessTokenFromCacheAsJson", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Application.Token.Models.GenerateToken" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenItem" + } + } + } + } + } + } + }, + "/Token/CheckAccessToken": { + "post": { + "tags": [ + "Token" + ], + "operationId": "CheckAccessToken", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenInput" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenInput" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenInput" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Devinco.Connect.Controllers.AccessTokenValidity" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Devinco.Connect.Application.Token.Models.GenerateToken": { + "type": "object", + "additionalProperties": false, + "properties": { + "subjectId": { + "type": "string", + "nullable": true + }, + "apiKey": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "integer", + "format": "int32" + }, + "tenantId": { + "type": "string", + "nullable": true + } + } + }, + "Devinco.Connect.Application.Token.Models.GenerateTokenWithLifetime": { + "type": "object", + "additionalProperties": false, + "properties": { + "subjectId": { + "type": "string", + "nullable": true + }, + "apiKey": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "integer", + "format": "int32" + }, + "tenantId": { + "type": "string", + "nullable": true + }, + "tokenLifetime": { + "type": "integer", + "format": "int32" + } + } + }, + "Devinco.Connect.Controllers.AccessTokenInput": { + "type": "object", + "additionalProperties": false, + "properties": { + "accessToken": { + "type": "string", + "nullable": true + } + } + }, + "Devinco.Connect.Controllers.AccessTokenItem": { + "type": "object", + "additionalProperties": false, + "properties": { + "accessToken": { + "type": "string", + "nullable": true + }, + "validFromUTC": { + "type": "string", + "format": "date-time" + }, + "validToUTC": { + "type": "string", + "format": "date-time" + } + } + }, + "Devinco.Connect.Controllers.AccessTokenValidity": { + "type": "object", + "additionalProperties": false, + "properties": { + "isValid": { + "type": "boolean" + } + } + } + }, + "securitySchemes": { + "oauth2": { + "type": "oauth2", + "description": "Authentication using OAuth2 \"bearer {token}\"", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://connect-extest.devinco.com/connect/authorize", + "tokenUrl": "https://connect-extest.devinco.com/connect/token", + "scopes": { + "contracting:api": "Scope Contracting", + "speedycraft:api": "Scope SpeedyCraft", + "license:api": "Scope Licensing", + "mesh_network:api": "Scope Mesh Network" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/AuthenticationApi/nswag.json b/Examples/ReadAndWrite/AuthenticationApi/nswag.json new file mode 100644 index 0000000..903e7e3 --- /dev/null +++ b/Examples/ReadAndWrite/AuthenticationApi/nswag.json @@ -0,0 +1,100 @@ +{ + "runtime": "Net70", + "defaultVariables": null, + "documentGenerator": { + "fromDocument": { + "url": "https://connect-extest.devinco.com/swagger/v1/swagger.json", + "output": "DevincoConnect.json", + "newLineBehavior": "Auto" + } + }, + "codeGenerators": { + "openApiToCSharpClient": { + "clientBaseClass": null, + "configurationClass": null, + "generateClientClasses": true, + "generateClientInterfaces": false, + "clientBaseInterface": null, + "injectHttpClient": true, + "disposeHttpClient": true, + "protectedMethods": [], + "generateExceptionClasses": true, + "exceptionClass": "ApiException", + "wrapDtoExceptions": true, + "useHttpClientCreationMethod": false, + "httpClientType": "System.Net.Http.HttpClient", + "useHttpRequestMessageCreationMethod": false, + "useBaseUrl": true, + "generateBaseUrlProperty": true, + "generateSyncMethods": false, + "generatePrepareRequestAndProcessResponseAsAsyncMethods": false, + "exposeJsonSerializerSettings": true, + "clientClassAccessModifier": "public", + "typeAccessModifier": "public", + "generateContractsOutput": false, + "contractsNamespace": null, + "contractsOutputFilePath": null, + "parameterDateTimeFormat": "s", + "parameterDateFormat": "yyyy-MM-dd", + "generateUpdateJsonSerializerSettingsMethod": true, + "useRequestAndResponseSerializationSettings": false, + "serializeTypeInformation": false, + "queryNullValue": "", + "className": "{controller}DevincoConnectClient", + "operationGenerationMode": "SingleClientFromPathSegments", + "additionalNamespaceUsages": [], + "additionalContractNamespaceUsages": [], + "generateOptionalParameters": false, + "generateJsonMethods": false, + "enforceFlagEnums": false, + "parameterArrayType": "System.Collections.Generic.IEnumerable", + "parameterDictionaryType": "System.Collections.Generic.IDictionary", + "responseArrayType": "System.Collections.Generic.List", + "responseDictionaryType": "System.Collections.Generic.Dictionary", + "wrapResponses": false, + "wrapResponseMethods": [], + "generateResponseClasses": true, + "responseClass": "SwaggerResponse", + "namespace": "ContractingWorks.AuthenticationApi", + "requiredPropertiesMustBeDefined": true, + "dateType": "System.DateOnly", + "jsonConverters": null, + "anyType": "object", + "dateTimeType": "System.DateTimeOffset", + "timeType": "System.TimeSpan", + "timeSpanType": "System.TimeSpan", + "arrayType": "System.Collections.Generic.List", + "arrayInstanceType": "System.Collections.ObjectModel.Collection", + "dictionaryType": "System.Collections.Generic.IDictionary", + "dictionaryInstanceType": "System.Collections.Generic.Dictionary", + "arrayBaseType": "System.Collections.ObjectModel.Collection", + "dictionaryBaseType": "System.Collections.Generic.Dictionary", + "classStyle": "Poco", + "jsonLibrary": "SystemTextJson", + "generateDefaultValues": true, + "generateDataAnnotations": true, + "excludedTypeNames": [], + "excludedParameterNames": [], + "handleReferences": false, + "generateImmutableArrayProperties": false, + "generateImmutableDictionaryProperties": false, + "jsonSerializerSettingsTransformationMethod": null, + "inlineNamedArrays": false, + "inlineNamedDictionaries": false, + "inlineNamedTuples": true, + "inlineNamedAny": false, + "generateDtoTypes": true, + "generateOptionalPropertiesAsNullable": true, + "generateNullableReferenceTypes": false, + "templateDirectory": null, + "typeNameGeneratorType": null, + "propertyNameGeneratorType": null, + "enumNameGeneratorType": null, + "checksumCacheEnabled": false, + "serviceHost": null, + "serviceSchemes": null, + "output": "DevincoConnect.cs", + "newLineBehavior": "Auto" + } + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/GQLQueries.graphql b/Examples/ReadAndWrite/GQLQueries.graphql new file mode 100644 index 0000000..ffa260a --- /dev/null +++ b/Examples/ReadAndWrite/GQLQueries.graphql @@ -0,0 +1,35 @@ +query GetCustomer($top: Int!, $filter: String!) { + customers( + top: $top + filter: $filter + orderBy: { path: "sys_RowVersion", descending: false } + ) { + items { + customerId + customerNumber + name + email + paymentTerm { + paymentTermId + days + daysStartNextMonth + description + } + } + } +} + +query GetPaymentTerm($top: Int!, $filter: String!) { + paymentTerms( + top: $top + filter: $filter + orderBy: { path: "sys_RowVersion", descending: false } + ) { + items { + paymentTermId + days + daysStartNextMonth + description + } + } +} diff --git a/Examples/ReadAndWrite/Generated/CWGQLClient.Client.cs b/Examples/ReadAndWrite/Generated/CWGQLClient.Client.cs new file mode 100644 index 0000000..7d55700 --- /dev/null +++ b/Examples/ReadAndWrite/Generated/CWGQLClient.Client.cs @@ -0,0 +1,1640 @@ +// +#nullable enable + +namespace ContractingWorks.ReadApi +{ + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomerResult : global::System.IEquatable, IGetCustomerResult + { + public GetCustomerResult(global::ContractingWorks.ReadApi.IGetCustomer_Customers? customers) + { + Customers = customers; + } + + public global::ContractingWorks.ReadApi.IGetCustomer_Customers? Customers { get; } + + public virtual global::System.Boolean Equals(GetCustomerResult? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Customers is null && other.Customers is null) || Customers != null && Customers.Equals(other.Customers))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetCustomerResult)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Customers != null) + { + hash ^= 397 * Customers.GetHashCode(); + } + + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomer_Customers_CustomerSet : global::System.IEquatable, IGetCustomer_Customers_CustomerSet + { + public GetCustomer_Customers_CustomerSet(global::System.Collections.Generic.IReadOnlyList? items) + { + Items = items; + } + + /// + /// The items in the set + /// + public global::System.Collections.Generic.IReadOnlyList? Items { get; } + + public virtual global::System.Boolean Equals(GetCustomer_Customers_CustomerSet? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (global::StrawberryShake.Internal.ComparisonHelper.SequenceEqual(Items, other.Items)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetCustomer_Customers_CustomerSet)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Items != null) + { + foreach (var Items_elm in Items) + { + hash ^= 397 * Items_elm.GetHashCode(); + } + } + + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomer_Customers_Items_Customer : global::System.IEquatable, IGetCustomer_Customers_Items_Customer + { + public GetCustomer_Customers_Items_Customer(global::System.Int32 customerId, global::System.Int32? customerNumber, global::System.String? name, global::System.String? email, global::ContractingWorks.ReadApi.IGetCustomer_Customers_Items_PaymentTerm? paymentTerm) + { + CustomerId = customerId; + CustomerNumber = customerNumber; + Name = name; + Email = email; + PaymentTerm = paymentTerm; + } + + public global::System.Int32 CustomerId { get; } + + public global::System.Int32? CustomerNumber { get; } + + public global::System.String? Name { get; } + + public global::System.String? Email { get; } + + public global::ContractingWorks.ReadApi.IGetCustomer_Customers_Items_PaymentTerm? PaymentTerm { get; } + + public virtual global::System.Boolean Equals(GetCustomer_Customers_Items_Customer? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (CustomerId == other.CustomerId) && CustomerNumber == other.CustomerNumber && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((Email is null && other.Email is null) || Email != null && Email.Equals(other.Email)) && ((PaymentTerm is null && other.PaymentTerm is null) || PaymentTerm != null && PaymentTerm.Equals(other.PaymentTerm)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetCustomer_Customers_Items_Customer)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * CustomerId.GetHashCode(); + if (CustomerNumber != null) + { + hash ^= 397 * CustomerNumber.GetHashCode(); + } + + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (Email != null) + { + hash ^= 397 * Email.GetHashCode(); + } + + if (PaymentTerm != null) + { + hash ^= 397 * PaymentTerm.GetHashCode(); + } + + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomer_Customers_Items_PaymentTerm_PaymentTerm : global::System.IEquatable, IGetCustomer_Customers_Items_PaymentTerm_PaymentTerm + { + public GetCustomer_Customers_Items_PaymentTerm_PaymentTerm(global::System.Int16 paymentTermId, global::System.Int16 days, global::System.Boolean daysStartNextMonth, global::System.String description) + { + PaymentTermId = paymentTermId; + Days = days; + DaysStartNextMonth = daysStartNextMonth; + Description = description; + } + + public global::System.Int16 PaymentTermId { get; } + + public global::System.Int16 Days { get; } + + public global::System.Boolean DaysStartNextMonth { get; } + + public global::System.String Description { get; } + + public virtual global::System.Boolean Equals(GetCustomer_Customers_Items_PaymentTerm_PaymentTerm? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (PaymentTermId == other.PaymentTermId) && Days == other.Days && DaysStartNextMonth == other.DaysStartNextMonth && Description.Equals(other.Description); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetCustomer_Customers_Items_PaymentTerm_PaymentTerm)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * PaymentTermId.GetHashCode(); + hash ^= 397 * Days.GetHashCode(); + hash ^= 397 * DaysStartNextMonth.GetHashCode(); + hash ^= 397 * Description.GetHashCode(); + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomerResult + { + public global::ContractingWorks.ReadApi.IGetCustomer_Customers? Customers { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomer_Customers + { + /// + /// The items in the set + /// + public global::System.Collections.Generic.IReadOnlyList? Items { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomer_Customers_CustomerSet : IGetCustomer_Customers + { + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomer_Customers_Items + { + public global::System.Int32 CustomerId { get; } + + public global::System.Int32? CustomerNumber { get; } + + public global::System.String? Name { get; } + + public global::System.String? Email { get; } + + public global::ContractingWorks.ReadApi.IGetCustomer_Customers_Items_PaymentTerm? PaymentTerm { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomer_Customers_Items_Customer : IGetCustomer_Customers_Items + { + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomer_Customers_Items_PaymentTerm + { + public global::System.Int16 PaymentTermId { get; } + + public global::System.Int16 Days { get; } + + public global::System.Boolean DaysStartNextMonth { get; } + + public global::System.String Description { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomer_Customers_Items_PaymentTerm_PaymentTerm : IGetCustomer_Customers_Items_PaymentTerm + { + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTermResult : global::System.IEquatable, IGetPaymentTermResult + { + public GetPaymentTermResult(global::ContractingWorks.ReadApi.IGetPaymentTerm_PaymentTerms? paymentTerms) + { + PaymentTerms = paymentTerms; + } + + public global::ContractingWorks.ReadApi.IGetPaymentTerm_PaymentTerms? PaymentTerms { get; } + + public virtual global::System.Boolean Equals(GetPaymentTermResult? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((PaymentTerms is null && other.PaymentTerms is null) || PaymentTerms != null && PaymentTerms.Equals(other.PaymentTerms))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetPaymentTermResult)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (PaymentTerms != null) + { + hash ^= 397 * PaymentTerms.GetHashCode(); + } + + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTerm_PaymentTerms_PaymentTermSet : global::System.IEquatable, IGetPaymentTerm_PaymentTerms_PaymentTermSet + { + public GetPaymentTerm_PaymentTerms_PaymentTermSet(global::System.Collections.Generic.IReadOnlyList? items) + { + Items = items; + } + + /// + /// The items in the set + /// + public global::System.Collections.Generic.IReadOnlyList? Items { get; } + + public virtual global::System.Boolean Equals(GetPaymentTerm_PaymentTerms_PaymentTermSet? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (global::StrawberryShake.Internal.ComparisonHelper.SequenceEqual(Items, other.Items)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetPaymentTerm_PaymentTerms_PaymentTermSet)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Items != null) + { + foreach (var Items_elm in Items) + { + hash ^= 397 * Items_elm.GetHashCode(); + } + } + + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTerm_PaymentTerms_Items_PaymentTerm : global::System.IEquatable, IGetPaymentTerm_PaymentTerms_Items_PaymentTerm + { + public GetPaymentTerm_PaymentTerms_Items_PaymentTerm(global::System.Int16 paymentTermId, global::System.Int16 days, global::System.Boolean daysStartNextMonth, global::System.String description) + { + PaymentTermId = paymentTermId; + Days = days; + DaysStartNextMonth = daysStartNextMonth; + Description = description; + } + + public global::System.Int16 PaymentTermId { get; } + + public global::System.Int16 Days { get; } + + public global::System.Boolean DaysStartNextMonth { get; } + + public global::System.String Description { get; } + + public virtual global::System.Boolean Equals(GetPaymentTerm_PaymentTerms_Items_PaymentTerm? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (PaymentTermId == other.PaymentTermId) && Days == other.Days && DaysStartNextMonth == other.DaysStartNextMonth && Description.Equals(other.Description); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((GetPaymentTerm_PaymentTerms_Items_PaymentTerm)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * PaymentTermId.GetHashCode(); + hash ^= 397 * Days.GetHashCode(); + hash ^= 397 * DaysStartNextMonth.GetHashCode(); + hash ^= 397 * Description.GetHashCode(); + return hash; + } + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetPaymentTermResult + { + public global::ContractingWorks.ReadApi.IGetPaymentTerm_PaymentTerms? PaymentTerms { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetPaymentTerm_PaymentTerms + { + /// + /// The items in the set + /// + public global::System.Collections.Generic.IReadOnlyList? Items { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetPaymentTerm_PaymentTerms_PaymentTermSet : IGetPaymentTerm_PaymentTerms + { + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetPaymentTerm_PaymentTerms_Items + { + public global::System.Int16 PaymentTermId { get; } + + public global::System.Int16 Days { get; } + + public global::System.Boolean DaysStartNextMonth { get; } + + public global::System.String Description { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetPaymentTerm_PaymentTerms_Items_PaymentTerm : IGetPaymentTerm_PaymentTerms_Items + { + } + + /// + /// Represents the operation service of the GetCustomer GraphQL operation + /// + /// query GetCustomer($top: Int!, $filter: String!) { + /// customers(top: $top, filter: $filter, orderBy: { path: "sys_RowVersion", descending: false }) { + /// __typename + /// items { + /// __typename + /// customerId + /// customerNumber + /// name + /// email + /// paymentTerm { + /// __typename + /// paymentTermId + /// days + /// daysStartNextMonth + /// description + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomerQueryDocument : global::StrawberryShake.IDocument + { + private GetCustomerQueryDocument() + { + } + + public static GetCustomerQueryDocument Instance { get; } = new GetCustomerQueryDocument(); + public global::StrawberryShake.OperationKind Kind => global::StrawberryShake.OperationKind.Query; + public global::System.ReadOnlySpan Body => new global::System.Byte[]{0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x28, 0x24, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x49, 0x6e, 0x74, 0x21, 0x2c, 0x20, 0x24, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x21, 0x29, 0x20, 0x7b, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x73, 0x28, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x24, 0x74, 0x6f, 0x70, 0x2c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x20, 0x24, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x3a, 0x20, 0x7b, 0x20, 0x70, 0x61, 0x74, 0x68, 0x3a, 0x20, 0x22, 0x73, 0x79, 0x73, 0x5f, 0x52, 0x6f, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x7d, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x20, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x64, 0x20, 0x64, 0x61, 0x79, 0x73, 0x20, 0x64, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d}; + public global::StrawberryShake.DocumentHash Hash { get; } = new global::StrawberryShake.DocumentHash("md5Hash", "ae171b8dbbd15ec41339afa1b43da494"); + public override global::System.String ToString() + { +#if NETCOREAPP3_1_OR_GREATER + return global::System.Text.Encoding.UTF8.GetString(Body); +#else + return global::System.Text.Encoding.UTF8.GetString(Body.ToArray()); +#endif + } + } + + /// + /// Represents the operation service of the GetCustomer GraphQL operation + /// + /// query GetCustomer($top: Int!, $filter: String!) { + /// customers(top: $top, filter: $filter, orderBy: { path: "sys_RowVersion", descending: false }) { + /// __typename + /// items { + /// __typename + /// customerId + /// customerNumber + /// name + /// email + /// paymentTerm { + /// __typename + /// paymentTermId + /// days + /// daysStartNextMonth + /// description + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomerQuery : global::ContractingWorks.ReadApi.IGetCustomerQuery + { + private readonly global::StrawberryShake.IOperationExecutor _operationExecutor; + private readonly global::StrawberryShake.Serialization.IInputValueFormatter _intFormatter; + private readonly global::StrawberryShake.Serialization.IInputValueFormatter _stringFormatter; + public GetCustomerQuery(global::StrawberryShake.IOperationExecutor operationExecutor, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver) + { + _operationExecutor = operationExecutor ?? throw new global::System.ArgumentNullException(nameof(operationExecutor)); + _intFormatter = serializerResolver.GetInputValueFormatter("Int"); + _stringFormatter = serializerResolver.GetInputValueFormatter("String"); + } + + global::System.Type global::StrawberryShake.IOperationRequestFactory.ResultType => typeof(IGetCustomerResult); + public async global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Int32 top, global::System.String filter, global::System.Threading.CancellationToken cancellationToken = default) + { + var request = CreateRequest(top, filter); + return await _operationExecutor.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); + } + + public global::System.IObservable> Watch(global::System.Int32 top, global::System.String filter, global::StrawberryShake.ExecutionStrategy? strategy = null) + { + var request = CreateRequest(top, filter); + return _operationExecutor.Watch(request, strategy); + } + + private global::StrawberryShake.OperationRequest CreateRequest(global::System.Int32 top, global::System.String filter) + { + var variables = new global::System.Collections.Generic.Dictionary(); + variables.Add("top", FormatTop(top)); + variables.Add("filter", FormatFilter(filter)); + return CreateRequest(variables); + } + + private global::StrawberryShake.OperationRequest CreateRequest(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return new global::StrawberryShake.OperationRequest(id: GetCustomerQueryDocument.Instance.Hash.Value, name: "GetCustomer", document: GetCustomerQueryDocument.Instance, strategy: global::StrawberryShake.RequestStrategy.Default, variables: variables); + } + + private global::System.Object? FormatTop(global::System.Int32 value) + { + return _intFormatter.Format(value); + } + + private global::System.Object? FormatFilter(global::System.String value) + { + if (value is null) + { + throw new global::System.ArgumentNullException(nameof(value)); + } + + return _stringFormatter.Format(value); + } + + global::StrawberryShake.OperationRequest global::StrawberryShake.IOperationRequestFactory.Create(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return CreateRequest(variables!); + } + } + + /// + /// Represents the operation service of the GetCustomer GraphQL operation + /// + /// query GetCustomer($top: Int!, $filter: String!) { + /// customers(top: $top, filter: $filter, orderBy: { path: "sys_RowVersion", descending: false }) { + /// __typename + /// items { + /// __typename + /// customerId + /// customerNumber + /// name + /// email + /// paymentTerm { + /// __typename + /// paymentTermId + /// days + /// daysStartNextMonth + /// description + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetCustomerQuery : global::StrawberryShake.IOperationRequestFactory + { + global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Int32 top, global::System.String filter, global::System.Threading.CancellationToken cancellationToken = default); + global::System.IObservable> Watch(global::System.Int32 top, global::System.String filter, global::StrawberryShake.ExecutionStrategy? strategy = null); + } + + /// + /// Represents the operation service of the GetPaymentTerm GraphQL operation + /// + /// query GetPaymentTerm($top: Int!, $filter: String!) { + /// paymentTerms(top: $top, filter: $filter, orderBy: { path: "sys_RowVersion", descending: false }) { + /// __typename + /// items { + /// __typename + /// paymentTermId + /// days + /// daysStartNextMonth + /// description + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTermQueryDocument : global::StrawberryShake.IDocument + { + private GetPaymentTermQueryDocument() + { + } + + public static GetPaymentTermQueryDocument Instance { get; } = new GetPaymentTermQueryDocument(); + public global::StrawberryShake.OperationKind Kind => global::StrawberryShake.OperationKind.Query; + public global::System.ReadOnlySpan Body => new global::System.Byte[]{0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x28, 0x24, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x49, 0x6e, 0x74, 0x21, 0x2c, 0x20, 0x24, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x21, 0x29, 0x20, 0x7b, 0x20, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x28, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x24, 0x74, 0x6f, 0x70, 0x2c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x20, 0x24, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x3a, 0x20, 0x7b, 0x20, 0x70, 0x61, 0x74, 0x68, 0x3a, 0x20, 0x22, 0x73, 0x79, 0x73, 0x5f, 0x52, 0x6f, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x7d, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x64, 0x20, 0x64, 0x61, 0x79, 0x73, 0x20, 0x64, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d}; + public global::StrawberryShake.DocumentHash Hash { get; } = new global::StrawberryShake.DocumentHash("md5Hash", "b995986cc549d6c4827f1c14dc131d5d"); + public override global::System.String ToString() + { +#if NETCOREAPP3_1_OR_GREATER + return global::System.Text.Encoding.UTF8.GetString(Body); +#else + return global::System.Text.Encoding.UTF8.GetString(Body.ToArray()); +#endif + } + } + + /// + /// Represents the operation service of the GetPaymentTerm GraphQL operation + /// + /// query GetPaymentTerm($top: Int!, $filter: String!) { + /// paymentTerms(top: $top, filter: $filter, orderBy: { path: "sys_RowVersion", descending: false }) { + /// __typename + /// items { + /// __typename + /// paymentTermId + /// days + /// daysStartNextMonth + /// description + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTermQuery : global::ContractingWorks.ReadApi.IGetPaymentTermQuery + { + private readonly global::StrawberryShake.IOperationExecutor _operationExecutor; + private readonly global::StrawberryShake.Serialization.IInputValueFormatter _intFormatter; + private readonly global::StrawberryShake.Serialization.IInputValueFormatter _stringFormatter; + public GetPaymentTermQuery(global::StrawberryShake.IOperationExecutor operationExecutor, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver) + { + _operationExecutor = operationExecutor ?? throw new global::System.ArgumentNullException(nameof(operationExecutor)); + _intFormatter = serializerResolver.GetInputValueFormatter("Int"); + _stringFormatter = serializerResolver.GetInputValueFormatter("String"); + } + + global::System.Type global::StrawberryShake.IOperationRequestFactory.ResultType => typeof(IGetPaymentTermResult); + public async global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Int32 top, global::System.String filter, global::System.Threading.CancellationToken cancellationToken = default) + { + var request = CreateRequest(top, filter); + return await _operationExecutor.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); + } + + public global::System.IObservable> Watch(global::System.Int32 top, global::System.String filter, global::StrawberryShake.ExecutionStrategy? strategy = null) + { + var request = CreateRequest(top, filter); + return _operationExecutor.Watch(request, strategy); + } + + private global::StrawberryShake.OperationRequest CreateRequest(global::System.Int32 top, global::System.String filter) + { + var variables = new global::System.Collections.Generic.Dictionary(); + variables.Add("top", FormatTop(top)); + variables.Add("filter", FormatFilter(filter)); + return CreateRequest(variables); + } + + private global::StrawberryShake.OperationRequest CreateRequest(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return new global::StrawberryShake.OperationRequest(id: GetPaymentTermQueryDocument.Instance.Hash.Value, name: "GetPaymentTerm", document: GetPaymentTermQueryDocument.Instance, strategy: global::StrawberryShake.RequestStrategy.Default, variables: variables); + } + + private global::System.Object? FormatTop(global::System.Int32 value) + { + return _intFormatter.Format(value); + } + + private global::System.Object? FormatFilter(global::System.String value) + { + if (value is null) + { + throw new global::System.ArgumentNullException(nameof(value)); + } + + return _stringFormatter.Format(value); + } + + global::StrawberryShake.OperationRequest global::StrawberryShake.IOperationRequestFactory.Create(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return CreateRequest(variables!); + } + } + + /// + /// Represents the operation service of the GetPaymentTerm GraphQL operation + /// + /// query GetPaymentTerm($top: Int!, $filter: String!) { + /// paymentTerms(top: $top, filter: $filter, orderBy: { path: "sys_RowVersion", descending: false }) { + /// __typename + /// items { + /// __typename + /// paymentTermId + /// days + /// daysStartNextMonth + /// description + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface IGetPaymentTermQuery : global::StrawberryShake.IOperationRequestFactory + { + global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Int32 top, global::System.String filter, global::System.Threading.CancellationToken cancellationToken = default); + global::System.IObservable> Watch(global::System.Int32 top, global::System.String filter, global::StrawberryShake.ExecutionStrategy? strategy = null); + } + + /// + /// Represents the CWGQLClient GraphQL client + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class CWGQLClient : global::ContractingWorks.ReadApi.ICWGQLClient + { + private readonly global::ContractingWorks.ReadApi.IGetCustomerQuery _getCustomer; + private readonly global::ContractingWorks.ReadApi.IGetPaymentTermQuery _getPaymentTerm; + public CWGQLClient(global::ContractingWorks.ReadApi.IGetCustomerQuery getCustomer, global::ContractingWorks.ReadApi.IGetPaymentTermQuery getPaymentTerm) + { + _getCustomer = getCustomer ?? throw new global::System.ArgumentNullException(nameof(getCustomer)); + _getPaymentTerm = getPaymentTerm ?? throw new global::System.ArgumentNullException(nameof(getPaymentTerm)); + } + + public static global::System.String ClientName => "CWGQLClient"; + public global::ContractingWorks.ReadApi.IGetCustomerQuery GetCustomer => _getCustomer; + public global::ContractingWorks.ReadApi.IGetPaymentTermQuery GetPaymentTerm => _getPaymentTerm; + } + + /// + /// Represents the CWGQLClient GraphQL client + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial interface ICWGQLClient + { + global::ContractingWorks.ReadApi.IGetCustomerQuery GetCustomer { get; } + + global::ContractingWorks.ReadApi.IGetPaymentTermQuery GetPaymentTerm { get; } + } +} + +namespace ContractingWorks.ReadApi.State +{ + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomerResultFactory : global::StrawberryShake.IOperationResultDataFactory + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + public GetCustomerResultFactory(global::StrawberryShake.IEntityStore entityStore) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + } + + global::System.Type global::StrawberryShake.IOperationResultDataFactory.ResultType => typeof(global::ContractingWorks.ReadApi.IGetCustomerResult); + public GetCustomerResult Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot = null) + { + if (snapshot is null) + { + snapshot = _entityStore.CurrentSnapshot; + } + + if (dataInfo is GetCustomerResultInfo info) + { + return new GetCustomerResult(MapIGetCustomer_Customers(info.Customers, snapshot)); + } + + throw new global::System.ArgumentException("GetCustomerResultInfo expected."); + } + + private global::ContractingWorks.ReadApi.IGetCustomer_Customers? MapIGetCustomer_Customers(global::ContractingWorks.ReadApi.State.CustomerSetData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IGetCustomer_Customers returnValue = default !; + if (data?.__typename.Equals("CustomerSet", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new GetCustomer_Customers_CustomerSet(MapIGetCustomer_Customers_ItemsNonNullableArray(data.Items, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIGetCustomer_Customers_ItemsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var customers = new global::System.Collections.Generic.List(); + foreach (global::ContractingWorks.ReadApi.State.CustomerData child in list) + { + customers.Add(MapNonNullableIGetCustomer_Customers_Items(child, snapshot)); + } + + return customers; + } + + private global::ContractingWorks.ReadApi.IGetCustomer_Customers_Items MapNonNullableIGetCustomer_Customers_Items(global::ContractingWorks.ReadApi.State.CustomerData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IGetCustomer_Customers_Items returnValue = default !; + if (data.__typename.Equals("Customer", global::System.StringComparison.Ordinal)) + { + returnValue = new GetCustomer_Customers_Items_Customer(data.CustomerId ?? throw new global::System.ArgumentNullException(), data.CustomerNumber, data.Name, data.Email, MapIGetCustomer_Customers_Items_PaymentTerm(data.PaymentTerm, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::ContractingWorks.ReadApi.IGetCustomer_Customers_Items_PaymentTerm? MapIGetCustomer_Customers_Items_PaymentTerm(global::ContractingWorks.ReadApi.State.PaymentTermData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IGetCustomer_Customers_Items_PaymentTerm returnValue = default !; + if (data?.__typename.Equals("PaymentTerm", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new GetCustomer_Customers_Items_PaymentTerm_PaymentTerm(data.PaymentTermId ?? throw new global::System.ArgumentNullException(), data.Days ?? throw new global::System.ArgumentNullException(), data.DaysStartNextMonth ?? throw new global::System.ArgumentNullException(), data.Description ?? throw new global::System.ArgumentNullException()); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + global::System.Object global::StrawberryShake.IOperationResultDataFactory.Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot) + { + return Create(dataInfo, snapshot); + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomerResultInfo : global::StrawberryShake.IOperationResultDataInfo + { + private readonly global::System.Collections.Generic.IReadOnlyCollection _entityIds; + private readonly global::System.UInt64 _version; + public GetCustomerResultInfo(global::ContractingWorks.ReadApi.State.CustomerSetData? customers, global::System.Collections.Generic.IReadOnlyCollection entityIds, global::System.UInt64 version) + { + Customers = customers; + _entityIds = entityIds ?? throw new global::System.ArgumentNullException(nameof(entityIds)); + _version = version; + } + + public global::ContractingWorks.ReadApi.State.CustomerSetData? Customers { get; } + + public global::System.Collections.Generic.IReadOnlyCollection EntityIds => _entityIds; + public global::System.UInt64 Version => _version; + public global::StrawberryShake.IOperationResultDataInfo WithVersion(global::System.UInt64 version) + { + return new GetCustomerResultInfo(Customers, _entityIds, version); + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTermResultFactory : global::StrawberryShake.IOperationResultDataFactory + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + public GetPaymentTermResultFactory(global::StrawberryShake.IEntityStore entityStore) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + } + + global::System.Type global::StrawberryShake.IOperationResultDataFactory.ResultType => typeof(global::ContractingWorks.ReadApi.IGetPaymentTermResult); + public GetPaymentTermResult Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot = null) + { + if (snapshot is null) + { + snapshot = _entityStore.CurrentSnapshot; + } + + if (dataInfo is GetPaymentTermResultInfo info) + { + return new GetPaymentTermResult(MapIGetPaymentTerm_PaymentTerms(info.PaymentTerms, snapshot)); + } + + throw new global::System.ArgumentException("GetPaymentTermResultInfo expected."); + } + + private global::ContractingWorks.ReadApi.IGetPaymentTerm_PaymentTerms? MapIGetPaymentTerm_PaymentTerms(global::ContractingWorks.ReadApi.State.PaymentTermSetData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IGetPaymentTerm_PaymentTerms returnValue = default !; + if (data?.__typename.Equals("PaymentTermSet", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new GetPaymentTerm_PaymentTerms_PaymentTermSet(MapIGetPaymentTerm_PaymentTerms_ItemsNonNullableArray(data.Items, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIGetPaymentTerm_PaymentTerms_ItemsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var paymentTerms = new global::System.Collections.Generic.List(); + foreach (global::ContractingWorks.ReadApi.State.PaymentTermData child in list) + { + paymentTerms.Add(MapNonNullableIGetPaymentTerm_PaymentTerms_Items(child, snapshot)); + } + + return paymentTerms; + } + + private global::ContractingWorks.ReadApi.IGetPaymentTerm_PaymentTerms_Items MapNonNullableIGetPaymentTerm_PaymentTerms_Items(global::ContractingWorks.ReadApi.State.PaymentTermData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IGetPaymentTerm_PaymentTerms_Items returnValue = default !; + if (data.__typename.Equals("PaymentTerm", global::System.StringComparison.Ordinal)) + { + returnValue = new GetPaymentTerm_PaymentTerms_Items_PaymentTerm(data.PaymentTermId ?? throw new global::System.ArgumentNullException(), data.Days ?? throw new global::System.ArgumentNullException(), data.DaysStartNextMonth ?? throw new global::System.ArgumentNullException(), data.Description ?? throw new global::System.ArgumentNullException()); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + global::System.Object global::StrawberryShake.IOperationResultDataFactory.Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot) + { + return Create(dataInfo, snapshot); + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTermResultInfo : global::StrawberryShake.IOperationResultDataInfo + { + private readonly global::System.Collections.Generic.IReadOnlyCollection _entityIds; + private readonly global::System.UInt64 _version; + public GetPaymentTermResultInfo(global::ContractingWorks.ReadApi.State.PaymentTermSetData? paymentTerms, global::System.Collections.Generic.IReadOnlyCollection entityIds, global::System.UInt64 version) + { + PaymentTerms = paymentTerms; + _entityIds = entityIds ?? throw new global::System.ArgumentNullException(nameof(entityIds)); + _version = version; + } + + public global::ContractingWorks.ReadApi.State.PaymentTermSetData? PaymentTerms { get; } + + public global::System.Collections.Generic.IReadOnlyCollection EntityIds => _entityIds; + public global::System.UInt64 Version => _version; + public global::StrawberryShake.IOperationResultDataInfo WithVersion(global::System.UInt64 version) + { + return new GetPaymentTermResultInfo(PaymentTerms, _entityIds, version); + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetCustomerBuilder : global::StrawberryShake.OperationResultBuilder + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + private readonly global::StrawberryShake.IEntityIdSerializer _idSerializer; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _intParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _stringParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _shortParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _booleanParser; + public GetCustomerBuilder(global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer idSerializer, global::StrawberryShake.IOperationResultDataFactory resultDataFactory, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + _idSerializer = idSerializer ?? throw new global::System.ArgumentNullException(nameof(idSerializer)); + ResultDataFactory = resultDataFactory ?? throw new global::System.ArgumentNullException(nameof(resultDataFactory)); + _intParser = serializerResolver.GetLeafValueParser("Int") ?? throw new global::System.ArgumentException("No serializer for type `Int` found."); + _stringParser = serializerResolver.GetLeafValueParser("String") ?? throw new global::System.ArgumentException("No serializer for type `String` found."); + _shortParser = serializerResolver.GetLeafValueParser("Short") ?? throw new global::System.ArgumentException("No serializer for type `Short` found."); + _booleanParser = serializerResolver.GetLeafValueParser("Boolean") ?? throw new global::System.ArgumentException("No serializer for type `Boolean` found."); + } + + protected override global::StrawberryShake.IOperationResultDataFactory ResultDataFactory { get; } + + protected override global::StrawberryShake.IOperationResultDataInfo BuildData(global::System.Text.Json.JsonElement obj) + { + var entityIds = new global::System.Collections.Generic.HashSet(); + global::StrawberryShake.IEntityStoreSnapshot snapshot = default !; + _entityStore.Update(session => + { + snapshot = session.CurrentSnapshot; + }); + return new GetCustomerResultInfo(Deserialize_IGetCustomer_Customers(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "customers")), entityIds, snapshot.Version); + } + + private global::ContractingWorks.ReadApi.State.CustomerSetData? Deserialize_IGetCustomer_Customers(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("CustomerSet", global::System.StringComparison.Ordinal) ?? false) + { + return new global::ContractingWorks.ReadApi.State.CustomerSetData(typename, items: Deserialize_IGetCustomer_Customers_ItemsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "items"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? Deserialize_IGetCustomer_Customers_ItemsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var customers = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + customers.Add(Deserialize_NonNullableIGetCustomer_Customers_Items(child)); + } + + return customers; + } + + private global::ContractingWorks.ReadApi.State.CustomerData Deserialize_NonNullableIGetCustomer_Customers_Items(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("Customer", global::System.StringComparison.Ordinal) ?? false) + { + return new global::ContractingWorks.ReadApi.State.CustomerData(typename, customerId: Deserialize_NonNullableInt32(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "customerId")), customerNumber: Deserialize_Int32(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "customerNumber")), name: Deserialize_String(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), email: Deserialize_String(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "email")), paymentTerm: Deserialize_IGetCustomer_Customers_Items_PaymentTerm(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "paymentTerm"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Int32 Deserialize_NonNullableInt32(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _intParser.Parse(obj.Value.GetInt32()!); + } + + private global::System.Int32? Deserialize_Int32(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + return _intParser.Parse(obj.Value.GetInt32()!); + } + + private global::System.String? Deserialize_String(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + + private global::ContractingWorks.ReadApi.State.PaymentTermData? Deserialize_IGetCustomer_Customers_Items_PaymentTerm(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("PaymentTerm", global::System.StringComparison.Ordinal) ?? false) + { + return new global::ContractingWorks.ReadApi.State.PaymentTermData(typename, paymentTermId: Deserialize_NonNullableInt16(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "paymentTermId")), days: Deserialize_NonNullableInt16(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "days")), daysStartNextMonth: Deserialize_NonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "daysStartNextMonth")), description: Deserialize_NonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Int16 Deserialize_NonNullableInt16(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _shortParser.Parse(obj.Value.GetInt16()!); + } + + private global::System.Boolean Deserialize_NonNullableBoolean(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _booleanParser.Parse(obj.Value.GetBoolean()!); + } + + private global::System.String Deserialize_NonNullableString(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class GetPaymentTermBuilder : global::StrawberryShake.OperationResultBuilder + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + private readonly global::StrawberryShake.IEntityIdSerializer _idSerializer; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _intParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _stringParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _shortParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _booleanParser; + public GetPaymentTermBuilder(global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer idSerializer, global::StrawberryShake.IOperationResultDataFactory resultDataFactory, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + _idSerializer = idSerializer ?? throw new global::System.ArgumentNullException(nameof(idSerializer)); + ResultDataFactory = resultDataFactory ?? throw new global::System.ArgumentNullException(nameof(resultDataFactory)); + _intParser = serializerResolver.GetLeafValueParser("Int") ?? throw new global::System.ArgumentException("No serializer for type `Int` found."); + _stringParser = serializerResolver.GetLeafValueParser("String") ?? throw new global::System.ArgumentException("No serializer for type `String` found."); + _shortParser = serializerResolver.GetLeafValueParser("Short") ?? throw new global::System.ArgumentException("No serializer for type `Short` found."); + _booleanParser = serializerResolver.GetLeafValueParser("Boolean") ?? throw new global::System.ArgumentException("No serializer for type `Boolean` found."); + } + + protected override global::StrawberryShake.IOperationResultDataFactory ResultDataFactory { get; } + + protected override global::StrawberryShake.IOperationResultDataInfo BuildData(global::System.Text.Json.JsonElement obj) + { + var entityIds = new global::System.Collections.Generic.HashSet(); + global::StrawberryShake.IEntityStoreSnapshot snapshot = default !; + _entityStore.Update(session => + { + snapshot = session.CurrentSnapshot; + }); + return new GetPaymentTermResultInfo(Deserialize_IGetPaymentTerm_PaymentTerms(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "paymentTerms")), entityIds, snapshot.Version); + } + + private global::ContractingWorks.ReadApi.State.PaymentTermSetData? Deserialize_IGetPaymentTerm_PaymentTerms(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("PaymentTermSet", global::System.StringComparison.Ordinal) ?? false) + { + return new global::ContractingWorks.ReadApi.State.PaymentTermSetData(typename, items: Deserialize_IGetPaymentTerm_PaymentTerms_ItemsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "items"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? Deserialize_IGetPaymentTerm_PaymentTerms_ItemsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var paymentTerms = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + paymentTerms.Add(Deserialize_NonNullableIGetPaymentTerm_PaymentTerms_Items(child)); + } + + return paymentTerms; + } + + private global::ContractingWorks.ReadApi.State.PaymentTermData Deserialize_NonNullableIGetPaymentTerm_PaymentTerms_Items(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("PaymentTerm", global::System.StringComparison.Ordinal) ?? false) + { + return new global::ContractingWorks.ReadApi.State.PaymentTermData(typename, paymentTermId: Deserialize_NonNullableInt16(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "paymentTermId")), days: Deserialize_NonNullableInt16(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "days")), daysStartNextMonth: Deserialize_NonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "daysStartNextMonth")), description: Deserialize_NonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Int16 Deserialize_NonNullableInt16(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _shortParser.Parse(obj.Value.GetInt16()!); + } + + private global::System.Boolean Deserialize_NonNullableBoolean(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _booleanParser.Parse(obj.Value.GetBoolean()!); + } + + private global::System.String Deserialize_NonNullableString(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class CustomerSetData + { + public CustomerSetData(global::System.String __typename, global::System.Collections.Generic.IReadOnlyList? items = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Items = items; + } + + public global::System.String __typename { get; } + + ///The items in the set + public global::System.Collections.Generic.IReadOnlyList? Items { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class CustomerData + { + public CustomerData(global::System.String __typename, global::System.Int32? customerId = default !, global::System.Int32? customerNumber = default !, global::System.String? name = default !, global::System.String? email = default !, global::ContractingWorks.ReadApi.State.PaymentTermData? paymentTerm = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + CustomerId = customerId; + CustomerNumber = customerNumber; + Name = name; + Email = email; + PaymentTerm = paymentTerm; + } + + public global::System.String __typename { get; } + + public global::System.Int32? CustomerId { get; } + + public global::System.Int32? CustomerNumber { get; } + + public global::System.String? Name { get; } + + public global::System.String? Email { get; } + + public global::ContractingWorks.ReadApi.State.PaymentTermData? PaymentTerm { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class PaymentTermData + { + public PaymentTermData(global::System.String __typename, global::System.Int16? paymentTermId = default !, global::System.Int16? days = default !, global::System.Boolean? daysStartNextMonth = default !, global::System.String? description = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + PaymentTermId = paymentTermId; + Days = days; + DaysStartNextMonth = daysStartNextMonth; + Description = description; + } + + public global::System.String __typename { get; } + + public global::System.Int16? PaymentTermId { get; } + + public global::System.Int16? Days { get; } + + public global::System.Boolean? DaysStartNextMonth { get; } + + public global::System.String? Description { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class PaymentTermSetData + { + public PaymentTermSetData(global::System.String __typename, global::System.Collections.Generic.IReadOnlyList? items = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Items = items; + } + + public global::System.String __typename { get; } + + ///The items in the set + public global::System.Collections.Generic.IReadOnlyList? Items { get; } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class CWGQLClientEntityIdFactory : global::StrawberryShake.IEntityIdSerializer + { + private static readonly global::System.Text.Json.JsonWriterOptions _options = new global::System.Text.Json.JsonWriterOptions() + {Indented = false}; + public global::StrawberryShake.EntityId Parse(global::System.Text.Json.JsonElement obj) + { + global::System.String __typename = obj.GetProperty("__typename").GetString()!; + return __typename switch + { + _ => throw new global::System.NotSupportedException()}; + } + + public global::System.String Format(global::StrawberryShake.EntityId entityId) + { + return entityId.Name switch + { + _ => throw new global::System.NotSupportedException()}; + } + } + + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public partial class CWGQLClientStoreAccessor : global::StrawberryShake.StoreAccessor + { + public CWGQLClientStoreAccessor(global::StrawberryShake.IOperationStore operationStore, global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer entityIdSerializer, global::System.Collections.Generic.IEnumerable requestFactories, global::System.Collections.Generic.IEnumerable resultDataFactories) : base(operationStore, entityStore, entityIdSerializer, requestFactories, resultDataFactories) + { + } + } +} + +namespace Microsoft.Extensions.DependencyInjection +{ + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "13.4.0.0")] + public static partial class CWGQLClientServiceCollectionExtensions + { + public static global::StrawberryShake.IClientBuilder AddCWGQLClient(this global::Microsoft.Extensions.DependencyInjection.IServiceCollection services, global::StrawberryShake.ExecutionStrategy strategy = global::StrawberryShake.ExecutionStrategy.NetworkOnly) + { + var serviceCollection = new global::Microsoft.Extensions.DependencyInjection.ServiceCollection(); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => + { + ConfigureClient(sp, serviceCollection, strategy); + return new ClientServiceProvider(global::Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(serviceCollection)); + }); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::ContractingWorks.ReadApi.State.CWGQLClientStoreAccessor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + return new global::StrawberryShake.ClientBuilder("CWGQLClient", services, serviceCollection); + } + + private static global::Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureClient(global::System.IServiceProvider parentServices, global::Microsoft.Extensions.DependencyInjection.ServiceCollection services, global::StrawberryShake.ExecutionStrategy strategy = global::StrawberryShake.ExecutionStrategy.NetworkOnly) + { + global::Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddSingleton(services, sp => new global::StrawberryShake.OperationStore(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => + { + var clientFactory = global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(parentServices); + return new global::StrawberryShake.Transport.Http.HttpConnection(() => clientFactory.CreateClient("CWGQLClient")); + }); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::StrawberryShake.Serialization.SerializerResolver(global::System.Linq.Enumerable.Concat(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(parentServices), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::ContractingWorks.ReadApi.State.GetCustomerResultFactory>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::ContractingWorks.ReadApi.State.GetCustomerBuilder>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::StrawberryShake.Json.JsonResultPatcher>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::ContractingWorks.ReadApi.State.GetPaymentTermResultFactory>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::ContractingWorks.ReadApi.State.GetPaymentTermBuilder>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::StrawberryShake.Json.JsonResultPatcher>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + return services; + } + + private sealed class ClientServiceProvider : System.IServiceProvider, System.IDisposable + { + private readonly System.IServiceProvider _provider; + public ClientServiceProvider(System.IServiceProvider provider) + { + _provider = provider; + } + + public object? GetService(System.Type serviceType) + { + return _provider.GetService(serviceType); + } + + public void Dispose() + { + if (_provider is System.IDisposable d) + { + d.Dispose(); + } + } + } + } +} diff --git a/Examples/ReadAndWrite/GlobalUsing.cs b/Examples/ReadAndWrite/GlobalUsing.cs new file mode 100644 index 0000000..41186f1 --- /dev/null +++ b/Examples/ReadAndWrite/GlobalUsing.cs @@ -0,0 +1,10 @@ +global using ContractingWorks.AuthenticationApi; +global using ContractingWorks.ReadApi; +global using ContractingWorks.WriteApi; +global using Microsoft.Extensions.Configuration; +global using Microsoft.Extensions.DependencyInjection; +global using Microsoft.Extensions.Hosting; +global using Microsoft.Extensions.Logging; +global using StrawberryShake; +global using System.Net.Http; +global using System.Net; diff --git a/Examples/ReadAndWrite/Program.cs b/Examples/ReadAndWrite/Program.cs new file mode 100644 index 0000000..62b0943 --- /dev/null +++ b/Examples/ReadAndWrite/Program.cs @@ -0,0 +1,188 @@ +// NOTE: In order for the example to work you need to +// override the following configuration: +// contractingWorks:clientId - The identifier of the Contracting Works client you to interact with +// contractingWorks:subjectId - The identifier of the user used to interact with Contracting Works +// contractingWorks:apiKey - The api key used to authentaticate the user above + +// Loads the necessary configuration settings from various sources. +// It's recommended to inject these settings using user secrets in Visual Studio. +// The configuration includes client ID, subject ID, API key, and endpoints. +var configuration = new ConfigurationBuilder() + .AddJsonFile("appsettings.json", true, true) + .AddUserSecrets(optional: true) + .AddEnvironmentVariables() + .Build(); + +// Extract configuration values for different components. +// These values will be used to set up API connections. +var clientId = configuration.GetValue("contractingWorks:clientId"); +var subjectId = configuration.GetValue("contractingWorks:subjectId"); +var apiKey = configuration.GetValue("contractingWorks:apiKey"); +var authenticationHost = configuration.GetValue("contractingWorks:authenticationHost"); +var graphQlHost = configuration.GetValue("contractingWorks:graphQlHost"); +var restHost = configuration.GetValue("contractingWorks:restHost"); + +// Construct base URLs for different endpoints. +// These URLs will be used as a foundation for constructing API requests. +var authenticationBaseUrl = $"https://{authenticationHost}/"; +var graphQlBaseUrl = $"https://{graphQlHost}/client/{clientId}/graphql"; +var restBaseUrl = $"https://{restHost}"; + +// Set up the HttpClient for making API requests. +// Configuration includes automatic decompression and a timeout. +var httpMessageHandler = new SocketsHttpHandler() +{ + AutomaticDecompression = DecompressionMethods.All, +}; +using var httpClient = new HttpClient(httpMessageHandler) +{ + Timeout = TimeSpan.FromSeconds(170), +}; + +// Initialize the authentication client to obtain an access token. +var authClient = new DevincoConnectClient(authenticationBaseUrl, httpClient); + +// Call the authentication API to get an access token for interacting with other APIs. +var authenticationResponse = await authClient.TokenGenerateAccessTokenAsJsonAsync( + new() + { + ApiKey = apiKey, + ClientId = 1, + SubjectId = subjectId, + TenantId = clientId, + }); +// cwToken is now the token used to interact with the graphQL and restAPI +// Note the token is valid for 1 hour +var cwToken = authenticationResponse.AccessToken; + +// Set up dependency injection using the Host class. +var builder = Host.CreateApplicationBuilder(args); + +// Add the HttpClient as a singleton service for efficient HTTP requests. +builder.Services.AddSingleton(httpClient); + +// Set up the CW GQL Client (generated by Strawberry Shake) using dependency injection. +builder.Services + .AddCWGQLClient() + .ConfigureHttpClient(client => + { + client.BaseAddress = new(graphQlBaseUrl); + client.DefaultRequestHeaders.Authorization = new("Bearer", cwToken); + }); + +// Add the MainApp class as a singleton service. +builder.Services.AddSingleton(); + +// Build the host using the configured services. +using var host = builder.Build(); + +var mainApp = host.Services.GetRequiredService(); +// Run main app +await mainApp.Run(cwToken, clientId??"", restBaseUrl); + +// The MainApp class encapsulates the core functionality of the example. +class MainApp +{ + readonly ILogger _logger; + readonly CWGQLClient _graphQl; + readonly HttpClient _httpClient; + + // Constructor injects necessary services for GraphQL and HTTP interactions. + public MainApp( + ILogger logger, + CWGQLClient graphQl, + HttpClient httpClient) + { + _logger = logger; + _graphQl = graphQl; + _httpClient = httpClient; + } + + // The Run method performs the main functionality of the application. + // It retrieves payment terms and customers using GraphQL, + // updates payment terms for customers using REST API. + public async Task Run(string cwToken, string clientId, string restBaseUrl) + { + // Give us the first 10 payment terms that are not deactivated (soft deleted) + var paymentTermResponse = await _graphQl.GetPaymentTerm.ExecuteAsync( + top:10, + filter:"sys_Deactivated = false"); + + // Throws if there are any errors. + paymentTermResponse.EnsureNoErrors(); + + // Find the first payment term. Note that values might be null + // so using ?. to avoid null reference exceptions is recommended + var paymentTerm = paymentTermResponse.Data?.PaymentTerms?.Items?.FirstOrDefault(); + if (paymentTerm is null) + { + _logger.LogWarning($"No payment terms found :("); + return; + } + + var paymentTermDescription = paymentTerm?.Description??"No description"; + _logger.LogInformation($"Found payment term: {paymentTermDescription}"); + + // Give us the first 10 customers that are not deactivated (soft deleted) + var customerResponse = await _graphQl.GetCustomer.ExecuteAsync( + top:10, + filter:"sys_Deactivated = false"); + + // Throws if there are any errors. + customerResponse.EnsureNoErrors(); + + // Find the customers payload. Note that values might be null + // so using ?. to avoid null reference exceptions is recommended + var customers = customerResponse?.Data?.Customers?.Items; + if (customers is null) + { + _logger.LogWarning($"No customers found :("); + return; + } + + // Print customer information using a loop. + foreach (var customer in customers) + { + _logger.LogInformation($"Customer - {customer.CustomerNumber} - {customer.Name} - {customer.PaymentTerm?.Description??"No payment term"}"); + } + + _logger.LogInformation($"Do you want me to change the payment term of all the customers above to {paymentTermDescription}\nType YES if you do"); + + // Prompt user for confirmation before making changes. + var response = Console.ReadLine()??""; + if (response != "YES") + { + _logger.LogInformation($"Ok I won't do anything then, bye!"); + return; + } + + _logger.LogInformation($"Ok, updating payment terms of all customers"); + + + // Prepare an upsert request for changing payment terms of customers. + var changedCustomers = new List(); + foreach (var customer in customers) + { + changedCustomers.Add(new () + { + // CustomerId is the primary key of the Customer table + // By setting this to a non-null value, it indicates that we want to + // update an existing customer. If it is null, it signifies creating a new customer. + CustomerId = customer.CustomerId, + // Set the payment term foreign key of the customer to + // the payment term id + PaymentTermId = paymentTerm!.PaymentTermId + }); + } + + // Initialize a REST client and perform the upsert operation. + var restClient = new ContractingWorksClient(restBaseUrl, _httpClient) + { + CwToken = cwToken, + Logger = _logger + }; + var repsonse = await restClient.V3ClientCustomerUpsertAsync(clientId, null, 0, changedCustomers); + + _logger.LogInformation($"So, the customers are now updated"); + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/README.md b/Examples/ReadAndWrite/README.md new file mode 100644 index 0000000..c7e80ad --- /dev/null +++ b/Examples/ReadAndWrite/README.md @@ -0,0 +1,288 @@ +# ReadAndWrite + +A simple read and write example for interacting with the Contracting Works API using C#. + +## Overview + +Contracting Works provides a [GraphQL endpoint](https://contracting-extest-clientapi-graphql.azurewebsites.net/graphql/ui/) endpoint for reading data and a [REST endpoint](https://contracting-extest-clientapi.azurewebsites.net/swagger/index.html) for writing data. This example demonstrates how to interact with these endpoints using C#. + +Internally, NSwag is used to generate C# classes for the REST API, while StrawberryShake is used for the GraphQL API. + +## Building the example + +Open and build in visual studio or run the following in the terminal: + +```bash +# Assuming you are in the root of the ReadAndWrite example folder + +# Restore the graph QL tools +dotnet tool restore + +# Build the example +# Should build without errors +dotnet build +``` + +### Secrets + +Before running the example, you need to set up the necessary secrets to connect to your Contracting Works client. + +#### Using Visual Studio + +1. Right-click the C# project and select `Manage User Secrets`. +2. Add the following information: + +```json +{ + "contractingWorks": { + "clientId" : "", + "subjectId" : "", + "apiKey" : "", + } +} +``` + +#### Using Command Line + +```bash +# Setup the secrets +dotnet user-secrets set "contractingWorks:clientId" "" +dotnet user-secrets set "contractingWorks:subjectId" "" +dotnet user-secrets set "contractingWorks:apiKey" "" + +# List the secrets (optional) +dotnet user-secrets list +``` + +## Running the example + +You can run the example from Visual Studio or the terminal using the following command: + +```bash +dotnet run +``` + +With some luck, the sample program will: + +1. Authenticate successfully through Devinco Connect. +2. Read data from Contracting Works using the GraphQL API. +3. Write data to Contracting Works using the REST API. + +## Strawberry Shake + +We use a tool called Strawberry Shake to generate the GraphQL client. + +GraphQL is similar to SQL in that it allows you to select only specific fields from a large dataset, minimizing the data sent over the network. It also enables traversing relationships and applying filters, making the returned data highly customizable. + +Strawberry Shake considers both the query and the schema during code generation, resulting in an easy-to-use C# client. + +### Workflow + +1. Create the desired query in the [GraphQL playground](https://contracting-extest-clientapi-graphql.azurewebsites.net/graphql/ui/). +2. Add or update the query in the [GQLQueries.graphql](GQLQueries.graphql) file. +3. Generate the GraphQL client code using the terminal: +```bash +# Assuming you are in the root of the ReadAndWrite example folder + +# Restore the GraphQL dotnet tool (only mandatory first time) +dotnet tool restore + +# Generate the GraphQL client code +dotnet graphql generate +``` +4. Consume the new query in C#. + +### Creating a query + +1. Navigate to the [GraphQL playground](https://contracting-extest-clientapi-graphql.azurewebsites.net/graphql/ui/). +2. Create a new document and provide the GraphQL schema URL. For example: `https://contracting-extest-clientapi-graphql.azurewebsites.net/client/001-demo-pog/graphql` +3. Craft your query. For instance, a supplier query could look like this: +```graphql +query GetSupplier($top: Int!, $filter: String!) { + suppliers( + top: $top + filter: $filter + orderBy: { path: "sys_RowVersion", descending: false } + ) { + items { + supplierId + supplierName + supplierNumber + } + } +} +``` +4. Add the query on the bottom of the [GQLQueries.graphql](GQLQueries.graphql) file. +5. Generate the GraphQL client code using the terminal: +```bash +# Assuming you are in the root of the ReadAndWrite example folder + +# Restore the GraphQL dotnet tool (only mandatory first time) +dotnet tool restore + +# Generate the GraphQL client code +dotnet graphql generate +``` +6. Add some C# code to get 10 suppliers and print them to the `MainApp.Run` method + +```csharp +// Give us the first 10 suppliers that are not deactivated (soft deleted) +var supplierResponse = await _graphQl.GetSupplier.ExecuteAsync( + top:10, + filter:"sys_Deactivated = false"); + +supplierResponse.EnsureNoErrors(); + +var suppliers = supplierResponse?.Data?.Suppliers?.Items; +if (suppliers is null) +{ + // No suppliers found + return; +} + +foreach (var supplier in suppliers) +{ + _logger.LogInformation($"Supplier - {supplier.SupplierNumber} - {supplier.SupplierName}"); +} +``` + +### Updating a query + +To update a query, copy the query from [GQLQueries.graphql](GQLQueries.graphql) to the [GraphQL playground](https://contracting-extest-clientapi-graphql.azurewebsites.net/graphql/ui/). Modify the query and copy it back to [GQLQueries.graphql](GQLQueries.graphql), then regenerate the client code using the same terminal commands. + +```bash +# Assuming you are in the root of the ReadAndWrite example folder + +# Restore the GraphQL dotnet tool (only mandatory first time) +dotnet tool restore + +# Generate the GraphQL client code +dotnet graphql generate +``` + +### Regenerating GraphQL Client Code + +To regenerate the GraphQL client code: + +```bash +# Assuming you are in the root of the ReadAndWrite example folder + +# Restore the GraphQL dotnet tool (only mandatory first time) +dotnet tool restore + +# Generate the GraphQL client code +dotnet graphql generate +``` + +### Downloading the Latest Contracting Works GraphQL Schema + +The GraphQL schema periodically changes. To access the latest updates, download the newest schema and regenerate the code: + +```bash +# Assuming you are in the root of the ReadAndWrite example folder + +# Restore the GraphQL dotnet tool (only mandatory first time) +dotnet tool restore + +# Download the latest GraphQL schema from Contracting Works +dotnet graphql update + +# Generate the GraphQL client code +dotnet graphql generate +``` +### Installing the GraphQL Tool + +If you're starting a new repository and plan to use the GraphQL tool, you need to install it. Here's how: + +```bash +# Create tool manifest in your repository +dotnet new tool-manifest + +# Install Strawberry Shake tools in your repository (or later version) +dotnet tool install StrawberryShake.Tools --version 13.4.0 +``` + +While you can install the GraphQL tool globally, installing it in the repository simplifies build pipelines. + +## NSWAG + +We use NSWAG to consume the Contracting Works REST API. Provided here is an example of how it can be used. + +### Getting NSWAG + +Download Zip file it from [latest NSWag release](https://github.com/RicoSuter/NSwag/releases). Unzip it to a place of your choice. + +### Generating REST API Client + +Using the terminal: +```bash +# Assuming you are in the root of the ReadAndWrite example folder +cd WriteApi + +# Generate the REST Client from the OpenAPI specification, takes a few seconds +\Net70\dotnet-nswag run +``` + +### Configuring NSWAG code generation + +The code generation is controlled by the file [nswag.json](WriteApi/nswag.json). This file contains a lot of settings but most important is `namespace` setting which control in what namespace the generated code ends up in. + +### Extending NSWAG code generation + +In order to support Contracting Works Authentication the client class `ContractingWorksClient` has been extended through a partial class. In addition, it's important to make sure that null values are not serialized as most of the times when the C# client code sets a null value it means leave this value as is. + +This can be seen in the source code for [`ContractingWorksClient`(Ext)](WriteApi/ContractingWorksExt.cs). + +```csharp +// We need to extend the NSWag client so that we can set the Authorization header +partial class ContractingWorksClient +{ + public required string CwToken { get; init; } + public required ILogger Logger { get; init; } + + // Inject the Authorization header when the request is prepared + partial void PrepareRequest(HttpClient client, HttpRequestMessage request, string url) + { + request.Headers.Authorization = new ("Bearer", CwToken); + +#if DEBUG + var content = request.Content; + if (content is not null) + { + // Bit messy code to dump the JSON doc to the log + // in DEBUG. + // This is just to let you see the JSON doc + // we send to the REST Api. + var bs = content.ReadAsByteArrayAsync().Result; + var json = UTF8Encoding.UTF8.GetString(bs); + Logger.LogInformation("Request:{json}", json); + } +#endif + } + + partial void UpdateJsonSerializerSettings(System.Text.Json.JsonSerializerOptions settings) + { + // It's important to not include null values in JSON doc to the + // REST Api. A null value means that the REST API will try to + // set the value in the table to null. + // A null value typically means "leave the value as is". + // `JsonIgnoreCondition.WhenWritingNull` means we don't include + // null values in the JSON which will leave the value as is + settings.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull ; + // The REST API assumes camelCasing which is the idiom for JavaScript + settings.PropertyNamingPolicy = JsonNamingPolicy.CamelCase ; +#if DEBUG + settings.WriteIndented = true ; +#else + settings.WriteIndented = false ; +#endif + } + +} +``` + +### Tips and tricks + +When working with the generated REST client code, it's important to note that it can become quite extensive, sometimes reaching around 90,000 lines of code. This substantial size may affect compilation times, particularly in larger projects. One strategy to mitigate this impact is to place the REST client code in a separate project. This approach ensures that the project containing the REST client code is recompiled only when changes are made specifically to that code, which tends to be less frequent. + +In this example, we've chosen to keep all the code within a single project to simplify the learning process and reduce the complexity of dealing with multiple projects and concepts. Depending on your project's requirements and priorities, you may decide to adopt either approach for managing the generated code effectively. \ No newline at end of file diff --git a/Examples/ReadAndWrite/ReadAndWrite.csproj b/Examples/ReadAndWrite/ReadAndWrite.csproj new file mode 100644 index 0000000..37600ee --- /dev/null +++ b/Examples/ReadAndWrite/ReadAndWrite.csproj @@ -0,0 +1,26 @@ + + + + Exe + net7.0 + enable + enable + ContractingWorks + true + true + d02e2cb3-eb06-470f-a183-d641ec37b9fe + + + + + + + + + + + PreserveNewest + + + + diff --git a/Examples/ReadAndWrite/ReadAndWrite.sln b/Examples/ReadAndWrite/ReadAndWrite.sln new file mode 100644 index 0000000..3587897 --- /dev/null +++ b/Examples/ReadAndWrite/ReadAndWrite.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33414.496 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReadAndWrite", "ReadAndWrite.csproj", "{3FCABA14-85BE-4E81-9C39-7AF6AB642B25}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3FCABA14-85BE-4E81-9C39-7AF6AB642B25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FCABA14-85BE-4E81-9C39-7AF6AB642B25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FCABA14-85BE-4E81-9C39-7AF6AB642B25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FCABA14-85BE-4E81-9C39-7AF6AB642B25}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2C42E2AB-0327-438D-B5F4-5B10E51F930F} + EndGlobalSection +EndGlobal diff --git a/Examples/ReadAndWrite/WriteApi/ContractingWorks.cs b/Examples/ReadAndWrite/WriteApi/ContractingWorks.cs new file mode 100644 index 0000000..82c5446 --- /dev/null +++ b/Examples/ReadAndWrite/WriteApi/ContractingWorks.cs @@ -0,0 +1,81319 @@ +//---------------------- +// +// Generated using the NSwag toolchain v13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) +// +//---------------------- + +#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." +#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." +#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' +#pragma warning disable 612 // Disable "CS0612 '...' is obsolete" +#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... +#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." +#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" +#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" +#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" +#pragma warning disable 8604 // Disable "CS8604 Possible null reference argument for parameter" + +namespace ContractingWorks.WriteApi +{ + using System = global::System; + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContractingWorksClient + { + private string _baseUrl = ""; + private System.Net.Http.HttpClient _httpClient; + private System.Lazy _settings; + + public ContractingWorksClient(string baseUrl, System.Net.Http.HttpClient httpClient) + { + BaseUrl = baseUrl; + _httpClient = httpClient; + _settings = new System.Lazy(CreateSerializerSettings, true); + } + + private System.Text.Json.JsonSerializerOptions CreateSerializerSettings() + { + var settings = new System.Text.Json.JsonSerializerOptions(); + UpdateJsonSerializerSettings(settings); + return settings; + } + + public string BaseUrl + { + get { return _baseUrl; } + set { _baseUrl = value; } + } + + public System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get { return _settings.Value; } } + + partial void UpdateJsonSerializerSettings(System.Text.Json.JsonSerializerOptions settings); + + partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); + partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); + partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); + + /// + /// Create or update a list of addresses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAddressUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAddressUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of addresses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAddressUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Address/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAddressGetNotSyncedAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body) + { + return V3ClientAddressGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAddressGetNotSyncedAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Address/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAdminMaxCustomerIdForChangedCustomerAddressContactAggregatesAsync(string apiBehaviour, string clientid) + { + return V3ClientAdminMaxCustomerIdForChangedCustomerAddressContactAggregatesAsync(apiBehaviour, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAdminMaxCustomerIdForChangedCustomerAddressContactAggregatesAsync(string apiBehaviour, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/MaxCustomerIdForChangedCustomerAddressContactAggregates?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAdminGetCustomerIdsForChangedCustomerAddressContactAggregatesAsync(long? rowVersion, int? atMost, long? toRowVersion, string apiBehaviour, string clientid) + { + return V3ClientAdminGetCustomerIdsForChangedCustomerAddressContactAggregatesAsync(rowVersion, atMost, toRowVersion, apiBehaviour, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAdminGetCustomerIdsForChangedCustomerAddressContactAggregatesAsync(long? rowVersion, int? atMost, long? toRowVersion, string apiBehaviour, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/GetCustomerIdsForChangedCustomerAddressContactAggregates?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (rowVersion != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("rowVersion") + "=").Append(System.Uri.EscapeDataString(ConvertToString(rowVersion, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (atMost != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("atMost") + "=").Append(System.Uri.EscapeDataString(ConvertToString(atMost, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (toRowVersion != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("toRowVersion") + "=").Append(System.Uri.EscapeDataString(ConvertToString(toRowVersion, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAdminGetMaxRowversionForChangedAssignmentDimensionUseAggregatesAsync(string apiBehaviour, string clientid) + { + return V3ClientAdminGetMaxRowversionForChangedAssignmentDimensionUseAggregatesAsync(apiBehaviour, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAdminGetMaxRowversionForChangedAssignmentDimensionUseAggregatesAsync(string apiBehaviour, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/GetMaxRowversionForChangedAssignmentDimensionUseAggregates?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAdminGetAssignmentIdsForChangedAssignmentDimensionUseAggregatesAsync(long? rowVersion, int? atMost, long? toRowVersion, string apiBehaviour, string clientid) + { + return V3ClientAdminGetAssignmentIdsForChangedAssignmentDimensionUseAggregatesAsync(rowVersion, atMost, toRowVersion, apiBehaviour, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAdminGetAssignmentIdsForChangedAssignmentDimensionUseAggregatesAsync(long? rowVersion, int? atMost, long? toRowVersion, string apiBehaviour, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/GetAssignmentIdsForChangedAssignmentDimensionUseAggregates?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (rowVersion != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("rowVersion") + "=").Append(System.Uri.EscapeDataString(ConvertToString(rowVersion, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (atMost != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("atMost") + "=").Append(System.Uri.EscapeDataString(ConvertToString(atMost, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (toRowVersion != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("toRowVersion") + "=").Append(System.Uri.EscapeDataString(ConvertToString(toRowVersion, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Performs daily maintenance on the client (Auth roles: cwdeveloper, cwmaintenance) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAdminDailyMaintenanceAsync(string clientid, string apiBehaviour, DailyMaintenanceRequestDto body) + { + return V3ClientAdminDailyMaintenanceAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Performs daily maintenance on the client (Auth roles: cwdeveloper, cwmaintenance) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAdminDailyMaintenanceAsync(string clientid, string apiBehaviour, DailyMaintenanceRequestDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/DailyMaintenance?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Removes history rows up to a specific date. (Auth roles: cwdeveloper, cwmaintenance) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAdminDeleteOldHistoryAsync(string clientid, string apiBehaviour, int? externalSystemId, DeleteOldHistoryRequestDto body) + { + return V3ClientAdminDeleteOldHistoryAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Removes history rows up to a specific date. (Auth roles: cwdeveloper, cwmaintenance) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAdminDeleteOldHistoryAsync(string clientid, string apiBehaviour, int? externalSystemId, DeleteOldHistoryRequestDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/DeleteOldHistory?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Transfer feature information from admin to client db. + ///
Information in client db will be lost, and replaced with admin db information about features. (Auth) + ///
+ /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAdminTransferFeaturesFromAdminAsync(string clientid) + { + return V3ClientAdminTransferFeaturesFromAdminAsync(clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Transfer feature information from admin to client db. + ///
Information in client db will be lost, and replaced with admin db information about features. (Auth) + ///
+ /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAdminTransferFeaturesFromAdminAsync(string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/TransferFeaturesFromAdmin"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Request last row version per table name. Note; the casing and spelling + ///
of table name has to be correct. Customer works, customer or Customers will not. (Auth) + ///
+ /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAdminLastRowVersionsAsync(string clientid, string apiBehaviour, int? externalSystemId, LastRowVersionsRequestDto body) + { + return V3ClientAdminLastRowVersionsAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Request last row version per table name. Note; the casing and spelling + ///
of table name has to be correct. Customer works, customer or Customers will not. (Auth) + ///
+ /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAdminLastRowVersionsAsync(string clientid, string apiBehaviour, int? externalSystemId, LastRowVersionsRequestDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/LastRowVersions?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAdminGetErrorMessagesAsync(string apiBehaviour, string clientid, AdminGetRowErrorMessagesParameters body) + { + return V3ClientAdminGetErrorMessagesAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAdminGetErrorMessagesAsync(string apiBehaviour, string clientid, AdminGetRowErrorMessagesParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Admin/GetErrorMessages?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of appointments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAppointmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAppointmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of appointments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAppointmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Appointment/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAppointmentGetNotSyncedAsync(string apiBehaviour, string clientid, AppointmentGetNotSyncedParameters body) + { + return V3ClientAppointmentGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAppointmentGetNotSyncedAsync(string apiBehaviour, string clientid, AppointmentGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Appointment/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Recalculate services for specific assignment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAssignmentRecalculateServicesAsync(string clientid, string apiBehaviour, AssignmentServiceDto body) + { + return V3ClientAssignmentRecalculateServicesAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Recalculate services for specific assignment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAssignmentRecalculateServicesAsync(string clientid, string apiBehaviour, AssignmentServiceDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/RecalculateServices?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Recalculate product note prices for specific assignment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentRecalculateAsync(string clientid, string apiBehaviour, RecalculateAssignmentDto body) + { + return V3ClientAssignmentRecalculateAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Recalculate product note prices for specific assignment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentRecalculateAsync(string clientid, string apiBehaviour, RecalculateAssignmentDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/Recalculate?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of assignments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAssignmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of assignments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AssignmentId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAssignmentPrepareAttachmentUploadAsync(string clientid, string apiBehaviour, AssignmentAttachmentUploadDto body) + { + return V3ClientAssignmentPrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AssignmentId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAssignmentPrepareAttachmentUploadAsync(string clientid, string apiBehaviour, AssignmentAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAssignmentPrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientAssignmentPrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAssignmentPrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentCopyAsync(string apiBehaviour, string clientid, AssignmentCopyParameters body) + { + return V3ClientAssignmentCopyAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentCopyAsync(string apiBehaviour, string clientid, AssignmentCopyParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/Copy?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Copying dimensions to a single assignment from its project (Auth) + /// + /// + /// Intended for internal use and is subject to change without notification + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentCopyDimensionsFromProjectAsync(string apiBehaviour, string clientid, AssignmentCopyDimensionsFromProjectParameters body) + { + return V3ClientAssignmentCopyDimensionsFromProjectAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Copying dimensions to a single assignment from its project (Auth) + /// + /// + /// Intended for internal use and is subject to change without notification + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentCopyDimensionsFromProjectAsync(string apiBehaviour, string clientid, AssignmentCopyDimensionsFromProjectParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/CopyDimensionsFromProject?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentGetErrorCountAsync(string apiBehaviour, string clientid, AssignmentGetErrorCountParameters body) + { + return V3ClientAssignmentGetErrorCountAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentGetErrorCountAsync(string apiBehaviour, string clientid, AssignmentGetErrorCountParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/GetErrorCount?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedAsync(string apiBehaviour, string clientid, AssignmentGetNotSyncedParameters body) + { + return V3ClientAssignmentGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedAsync(string apiBehaviour, string clientid, AssignmentGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAssignmentResetHistoricAsync(string apiBehaviour, string clientid, AssignmentResetHistoricParameters body) + { + return V3ClientAssignmentResetHistoricAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAssignmentResetHistoricAsync(string apiBehaviour, string clientid, AssignmentResetHistoricParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/ResetHistoric?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedParticipantAsync(string apiBehaviour, string clientid, AssignmentParticipantGetNotSyncedParameters body) + { + return V3ClientAssignmentGetNotSyncedParticipantAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedParticipantAsync(string apiBehaviour, string clientid, AssignmentParticipantGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/GetNotSyncedParticipant?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedContactAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body) + { + return V3ClientAssignmentGetNotSyncedContactAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedContactAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/GetNotSyncedContact?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body) + { + return V3ClientAssignmentGetNotSyncedAddressAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/GetNotSyncedAddress?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentReportMonthlySummaryAsync(string apiBehaviour, string clientid, AssignmentReportMonthlySummaryParameters body) + { + return V3ClientAssignmentReportMonthlySummaryAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentReportMonthlySummaryAsync(string apiBehaviour, string clientid, AssignmentReportMonthlySummaryParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/Report_MonthlySummary?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentReportDimensionSummaryAsync(string apiBehaviour, string clientid, AssignmentReportDimensionSummaryParameters body) + { + return V3ClientAssignmentReportDimensionSummaryAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentReportDimensionSummaryAsync(string apiBehaviour, string clientid, AssignmentReportDimensionSummaryParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/Report_DimensionSummary?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentProjectReportAsync(string apiBehaviour, string clientid, AssignmentProjectReportParameters body) + { + return V3ClientAssignmentProjectReportAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentProjectReportAsync(string apiBehaviour, string clientid, AssignmentProjectReportParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/ProjectReport?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentGetDefaultsAsync(string apiBehaviour, string clientid, AssignmentGetDefaultsParameters body) + { + return V3ClientAssignmentGetDefaultsAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentGetDefaultsAsync(string apiBehaviour, string clientid, AssignmentGetDefaultsParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/GetDefaults?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAssignmentInvoiceReserveAdjustmentAsync(string apiBehaviour, string clientid, AssignmentInvoiceReserveAdjustmentParameters body) + { + return V3ClientAssignmentInvoiceReserveAdjustmentAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAssignmentInvoiceReserveAdjustmentAsync(string apiBehaviour, string clientid, AssignmentInvoiceReserveAdjustmentParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Assignment/InvoiceReserveAdjustment?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of assignmentCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAssignmentCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of assignmentCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/AssignmentCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, AssignmentCategoryGetNotSyncedParameters body) + { + return V3ClientAssignmentCategoryGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, AssignmentCategoryGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/AssignmentCategory/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate AssignmentCategory record before saving. (Auth) + /// + /// Simplified AssignmentCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentCategoryPreProcessAsync(string apiBehaviour, string clientid, AssignmentCategoryPreProcessParameters body) + { + return V3ClientAssignmentCategoryPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate AssignmentCategory record before saving. (Auth) + /// + /// Simplified AssignmentCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentCategoryPreProcessAsync(string apiBehaviour, string clientid, AssignmentCategoryPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/AssignmentCategory/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of assignmentMOMs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAssignmentMOMUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAssignmentMOMUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of assignmentMOMs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAssignmentMOMUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/AssignmentMOM/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Creates SAS access token for attachment (Auth) + /// + /// Id of a current client + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientAttachmentPrepareAttachmentDownloadAsync(string clientid, string apiBehaviour, AttachmentDownloadDto body) + { + return V3ClientAttachmentPrepareAttachmentDownloadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Creates SAS access token for attachment (Auth) + /// + /// Id of a current client + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientAttachmentPrepareAttachmentDownloadAsync(string clientid, string apiBehaviour, AttachmentDownloadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Attachment/PrepareAttachmentDownload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Attachment hard delete (Auth) + /// + /// Id of a current client + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAttachmentDeleteAsync(string clientid, string apiBehaviour, System.Collections.Generic.IEnumerable body) + { + return V3ClientAttachmentDeleteAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Attachment hard delete (Auth) + /// + /// Id of a current client + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAttachmentDeleteAsync(string clientid, string apiBehaviour, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Attachment/Delete?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("DELETE"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of attachments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAttachmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAttachmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of attachments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAttachmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Attachment/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAttachmentGetNotSyncedAsync(string apiBehaviour, string clientid, AttachmentGetNotSyncedParameters body) + { + return V3ClientAttachmentGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAttachmentGetNotSyncedAsync(string apiBehaviour, string clientid, AttachmentGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Attachment/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of attachmentCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientAttachmentCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientAttachmentCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of attachmentCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientAttachmentCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/AttachmentCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of boligmappaAttachments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientBoligmappaAttachmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientBoligmappaAttachmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of boligmappaAttachments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientBoligmappaAttachmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/BoligmappaAttachment/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientBoligmappaAttachmentGetNotSyncedAttachmentAsync(string apiBehaviour, string clientid, AttachmentGetNotSyncedParameters body) + { + return V3ClientBoligmappaAttachmentGetNotSyncedAttachmentAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientBoligmappaAttachmentGetNotSyncedAttachmentAsync(string apiBehaviour, string clientid, AttachmentGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/BoligmappaAttachment/GetNotSyncedAttachment?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of budgets. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientBudgetUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientBudgetUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of budgets. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientBudgetUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Budget/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of budgetLines. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientBudgetLineUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientBudgetLineUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of budgetLines. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientBudgetLineUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/BudgetLine/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of budgetScenarios. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientBudgetScenarioUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientBudgetScenarioUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of budgetScenarios. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientBudgetScenarioUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/BudgetScenario/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of contacts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientContactUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientContactUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of contacts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientContactUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Contact/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientContactGetNotSyncedAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body) + { + return V3ClientContactGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientContactGetNotSyncedAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Contact/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of contactMessages. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientContactMessageUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientContactMessageUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of contactMessages. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientContactMessageUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ContactMessage/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of countries. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCountryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientCountryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of countries. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCountryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Country/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomDashboardGetDashboardAsync(string clientid, DashboardCommand body) + { + return V3ClientCustomDashboardGetDashboardAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomDashboardGetDashboardAsync(string clientid, DashboardCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomDashboard/GetDashboard"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of customers. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCustomerUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientCustomerUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of customers. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCustomerUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Customer/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts CustomerId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomerPrepareAttachmentUploadAsync(string clientid, string apiBehaviour, CustomerAttachmentUploadDto body) + { + return V3ClientCustomerPrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts CustomerId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomerPrepareAttachmentUploadAsync(string clientid, string apiBehaviour, CustomerAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Customer/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomerPrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientCustomerPrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomerPrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Customer/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCustomerGetNotSyncedAsync(string apiBehaviour, string clientid, CustomerGetNotSyncedParameters body) + { + return V3ClientCustomerGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCustomerGetNotSyncedAsync(string apiBehaviour, string clientid, CustomerGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Customer/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCustomerGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body) + { + return V3ClientCustomerGetNotSyncedAddressAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCustomerGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Customer/GetNotSyncedAddress?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCustomerGetNotSyncedContactAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body) + { + return V3ClientCustomerGetNotSyncedContactAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCustomerGetNotSyncedContactAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Customer/GetNotSyncedContact?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceSendInvoiceAsync(string clientid, SendInvoiceCommand body) + { + return V3ClientCustomInvoiceSendInvoiceAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceSendInvoiceAsync(string clientid, SendInvoiceCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/SendInvoice"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceGetInvoiceAsync(int? invoiceId, string clientid) + { + return V3ClientCustomInvoiceGetInvoiceAsync(invoiceId, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceGetInvoiceAsync(int? invoiceId, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/GetInvoice?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (invoiceId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("InvoiceId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(invoiceId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCustomInvoiceGetInvoiceLinesAsync(int? invoiceId, string sessionId, string clientid) + { + return V3ClientCustomInvoiceGetInvoiceLinesAsync(invoiceId, sessionId, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCustomInvoiceGetInvoiceLinesAsync(int? invoiceId, string sessionId, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/GetInvoiceLines?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (invoiceId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("InvoiceId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(invoiceId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (sessionId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("SessionId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(sessionId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + [System.Obsolete] + public virtual System.Threading.Tasks.Task> V3ClientCustomInvoiceCancelInvoiceAsync(string clientid, InvoiceCancelParameters body) + { + return V3ClientCustomInvoiceCancelInvoiceAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + [System.Obsolete] + public virtual async System.Threading.Tasks.Task> V3ClientCustomInvoiceCancelInvoiceAsync(string clientid, InvoiceCancelParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/CancelInvoice"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("PUT"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceSaveInvoiceAsync(string clientid, SaveInvoiceCommand body) + { + return V3ClientCustomInvoiceSaveInvoiceAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceSaveInvoiceAsync(string clientid, SaveInvoiceCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/SaveInvoice"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceSetInvoiceStatusAsync(string clientid, SetInvoiceStatusCommand body) + { + return V3ClientCustomInvoiceSetInvoiceStatusAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceSetInvoiceStatusAsync(string clientid, SetInvoiceStatusCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/SetInvoiceStatus"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("PUT"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceUpsertInvoiceLineAsync(string clientid, UpsertCustomInvoiceLineCommand body) + { + return V3ClientCustomInvoiceUpsertInvoiceLineAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceUpsertInvoiceLineAsync(string clientid, UpsertCustomInvoiceLineCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/UpsertInvoiceLine"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceImportInvoiceAsync(string clientid, ImportInvoiceCommand body) + { + return V3ClientCustomInvoiceImportInvoiceAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceImportInvoiceAsync(string clientid, ImportInvoiceCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/ImportInvoice"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceCreateCreditNoteAsync(string clientid, CreateCreditNoteCommand body) + { + return V3ClientCustomInvoiceCreateCreditNoteAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceCreateCreditNoteAsync(string clientid, CreateCreditNoteCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/CreateCreditNote"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task>> V3ClientCustomInvoiceInsertInvoiceLinesSessionAsync(string clientid, System.Guid? sessionId, int? sortOrder, System.Collections.Generic.IEnumerable body) + { + return V3ClientCustomInvoiceInsertInvoiceLinesSessionAsync(clientid, sessionId, sortOrder, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task>> V3ClientCustomInvoiceInsertInvoiceLinesSessionAsync(string clientid, System.Guid? sessionId, int? sortOrder, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/InsertInvoiceLines_Session?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (sessionId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("sessionId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(sessionId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (sortOrder != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("sortOrder") + "=").Append(System.Uri.EscapeDataString(ConvertToString(sortOrder, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomInvoiceDeleteInvoiceLineAsync(string clientid, DeleteInvoiceLineCommand body) + { + return V3ClientCustomInvoiceDeleteInvoiceLineAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomInvoiceDeleteInvoiceLineAsync(string clientid, DeleteInvoiceLineCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomInvoice/DeleteInvoiceLine"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("DELETE"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of services. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged + /// Represents owner system of external ids + /// Created + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientCustomServiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientCustomServiceUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of services. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged + /// Represents owner system of external ids + /// Created + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientCustomServiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomService/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientCustomServiceReprocessErrorsAsync(string clientid, ReprocessErrorsCommand body) + { + return V3ClientCustomServiceReprocessErrorsAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientCustomServiceReprocessErrorsAsync(string clientid, ReprocessErrorsCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/CustomService/ReprocessErrors"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of departments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDepartmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientDepartmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of departments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDepartmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Department/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDepartmentGetNotSyncedAsync(string apiBehaviour, string clientid, DepartmentGetNotSyncedParameters body) + { + return V3ClientDepartmentGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDepartmentGetNotSyncedAsync(string apiBehaviour, string clientid, DepartmentGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Department/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate Department record before saving. (Auth) + /// + /// Simplified Department with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDepartmentPreProcessAsync(string apiBehaviour, string clientid, DepartmentPreProcessParameters body) + { + return V3ClientDepartmentPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate Department record before saving. (Auth) + /// + /// Simplified Department with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDepartmentPreProcessAsync(string apiBehaviour, string clientid, DepartmentPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Department/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Get all dimension values (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetDimensionValuesAsync(int? dimensionId, string clientid) + { + return V3ClientDimensionGetDimensionValuesAsync(dimensionId, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Get all dimension values (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetDimensionValuesAsync(int? dimensionId, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetDimensionValues?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (dimensionId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("dimensionId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(dimensionId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Get dimensions with activity information for specific assignment or project (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetDimensionsForEntityAsync(int? assignmentId, int? projectId, int? dimensionId, DimensionFilter? dimensionFilter, bool? onlyInvoiceable, string clientid) + { + return V3ClientDimensionGetDimensionsForEntityAsync(assignmentId, projectId, dimensionId, dimensionFilter, onlyInvoiceable, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Get dimensions with activity information for specific assignment or project (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetDimensionsForEntityAsync(int? assignmentId, int? projectId, int? dimensionId, DimensionFilter? dimensionFilter, bool? onlyInvoiceable, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetDimensionsForEntity?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (assignmentId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("assignmentId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(assignmentId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (projectId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("projectId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(projectId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (dimensionId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("dimensionId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(dimensionId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (dimensionFilter != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("dimensionFilter") + "=").Append(System.Uri.EscapeDataString(ConvertToString(dimensionFilter, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (onlyInvoiceable != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("onlyInvoiceable") + "=").Append(System.Uri.EscapeDataString(ConvertToString(onlyInvoiceable, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Get dimension values with activity information for specific assignment or project and specific dimension (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetDimensionValuesForEntityAsync(int? assignmentId, int? projectId, int? dimensionValueId, int? dimensionId, string clientid) + { + return V3ClientDimensionGetDimensionValuesForEntityAsync(assignmentId, projectId, dimensionValueId, dimensionId, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Get dimension values with activity information for specific assignment or project and specific dimension (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetDimensionValuesForEntityAsync(int? assignmentId, int? projectId, int? dimensionValueId, int? dimensionId, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetDimensionValuesForEntity?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (assignmentId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("assignmentId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(assignmentId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (projectId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("projectId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(projectId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (dimensionValueId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("dimensionValueId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(dimensionValueId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (dimensionId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("dimensionId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(dimensionId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Get dimension column meta data for specific entity type + ///
Supported entity types: Service, ProductNoteLine and Invoice (Auth) + ///
+ /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetDimensionsMetadataAsync(int? assignmentId, EntityNameForDimension? entityName, string clientid) + { + return V3ClientDimensionGetDimensionsMetadataAsync(assignmentId, entityName, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Get dimension column meta data for specific entity type + ///
Supported entity types: Service, ProductNoteLine and Invoice (Auth) + ///
+ /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetDimensionsMetadataAsync(int? assignmentId, EntityNameForDimension? entityName, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetDimensionsMetadata?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (assignmentId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("assignmentId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(assignmentId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (entityName != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("entityName") + "=").Append(System.Uri.EscapeDataString(ConvertToString(entityName, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of dimensions. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientDimensionUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of dimensions. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 422) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + throw new ApiException>("Client Error", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionCopyAsync(string apiBehaviour, string clientid, DimensionCopyParameters body) + { + return V3ClientDimensionCopyAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionCopyAsync(string apiBehaviour, string clientid, DimensionCopyParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/Copy?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetNotSyncedAsync(string apiBehaviour, string clientid, DimensionGetNotSyncedParameters body) + { + return V3ClientDimensionGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetNotSyncedAsync(string apiBehaviour, string clientid, DimensionGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetNotSyncedValueAsync(string apiBehaviour, string clientid, DimensionValueGetNotSyncedParameters body) + { + return V3ClientDimensionGetNotSyncedValueAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetNotSyncedValueAsync(string apiBehaviour, string clientid, DimensionValueGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetNotSyncedValue?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionGetNotSyncedAssignmentDimensionValueAsync(string apiBehaviour, string clientid, DimensionValueGetNotSyncedAssignmentDimensionParameters body) + { + return V3ClientDimensionGetNotSyncedAssignmentDimensionValueAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionGetNotSyncedAssignmentDimensionValueAsync(string apiBehaviour, string clientid, DimensionValueGetNotSyncedAssignmentDimensionParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Dimension/GetNotSyncedAssignmentDimensionValue?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of dimensionUses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionUseUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientDimensionUseUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of dimensionUses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionUseUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/DimensionUse/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of dimensionValueUses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDimensionValueUseUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientDimensionValueUseUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of dimensionValueUses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDimensionValueUseUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/DimensionValueUse/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of discountGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientDiscountGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientDiscountGroupUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of discountGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientDiscountGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/DiscountGroup/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of employees. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientEmployeeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientEmployeeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of employees. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientEmployeeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Employee/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts EmployeeId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientEmployeePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, EmployeeAttachmentUploadDto body) + { + return V3ClientEmployeePrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts EmployeeId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientEmployeePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, EmployeeAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Employee/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientEmployeePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientEmployeePrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientEmployeePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Employee/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientEmployeeGetNotSyncedAsync(string apiBehaviour, string clientid, EmployeeGetNotSyncedParameters body) + { + return V3ClientEmployeeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientEmployeeGetNotSyncedAsync(string apiBehaviour, string clientid, EmployeeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Employee/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientEmployeeGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body) + { + return V3ClientEmployeeGetNotSyncedAddressAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientEmployeeGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Employee/GetNotSyncedAddress?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of employeeInvoiceCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientEmployeeInvoiceCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientEmployeeInvoiceCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of employeeInvoiceCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientEmployeeInvoiceCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/EmployeeInvoiceCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientEmployeeInvoiceCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, EmployeeInvoiceCategoryGetNotSyncedParameters body) + { + return V3ClientEmployeeInvoiceCategoryGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientEmployeeInvoiceCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, EmployeeInvoiceCategoryGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/EmployeeInvoiceCategory/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate EmployeeInvoiceCategory record before saving. (Auth) + /// + /// Simplified EmployeeInvoiceCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientEmployeeInvoiceCategoryPreProcessAsync(string apiBehaviour, string clientid, EmployeeInvoiceCategoryPreProcessParameters body) + { + return V3ClientEmployeeInvoiceCategoryPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate EmployeeInvoiceCategory record before saving. (Auth) + /// + /// Simplified EmployeeInvoiceCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientEmployeeInvoiceCategoryPreProcessAsync(string apiBehaviour, string clientid, EmployeeInvoiceCategoryPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/EmployeeInvoiceCategory/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// This endpoint updates the status of syncs in the common cache (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientExternalSystemUpdateSyncRequestedStatusToCacheAsync(string clientid, UpdateSyncRequestedStatusToCacheRequest body) + { + return V3ClientExternalSystemUpdateSyncRequestedStatusToCacheAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// This endpoint updates the status of syncs in the common cache (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientExternalSystemUpdateSyncRequestedStatusToCacheAsync(string clientid, UpdateSyncRequestedStatusToCacheRequest body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/UpdateSyncRequestedStatusToCache"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of externalSystems. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientExternalSystemUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientExternalSystemUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of externalSystems. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientExternalSystemUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientExternalSystemCheckAnySyncNeededAsync(string apiBehaviour, string clientid, ExternalSystemCheckAnySyncNeededParameters body) + { + return V3ClientExternalSystemCheckAnySyncNeededAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientExternalSystemCheckAnySyncNeededAsync(string apiBehaviour, string clientid, ExternalSystemCheckAnySyncNeededParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/CheckAnySyncNeeded?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientExternalSystemCheckSyncNeededAsync(string apiBehaviour, string clientid, ExternalSystemCheckSyncNeededParameters body) + { + return V3ClientExternalSystemCheckSyncNeededAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientExternalSystemCheckSyncNeededAsync(string apiBehaviour, string clientid, ExternalSystemCheckSyncNeededParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/CheckSyncNeeded?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientExternalSystemConfigureSpeedyCraftAsync(string apiBehaviour, string clientid, ExternalSystemConfigureSpeedyCraftParameters body) + { + return V3ClientExternalSystemConfigureSpeedyCraftAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientExternalSystemConfigureSpeedyCraftAsync(string apiBehaviour, string clientid, ExternalSystemConfigureSpeedyCraftParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/ConfigureSpeedyCraft?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientExternalSystemResetSyncFlagAsync(string apiBehaviour, string clientid, ExternalSystemResetSyncFlagParameters body) + { + return V3ClientExternalSystemResetSyncFlagAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientExternalSystemResetSyncFlagAsync(string apiBehaviour, string clientid, ExternalSystemResetSyncFlagParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/ResetSyncFlag?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientExternalSystemGetOrCreateExternalSystemIDAsync(string apiBehaviour, string clientid, ExternalSystemGetOrCreateExternalSystemIDParameters body) + { + return V3ClientExternalSystemGetOrCreateExternalSystemIDAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientExternalSystemGetOrCreateExternalSystemIDAsync(string apiBehaviour, string clientid, ExternalSystemGetOrCreateExternalSystemIDParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/GetOrCreateExternalSystemID?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientExternalSystemRequestSyncAsync(string apiBehaviour, string clientid, ExternalSystemRequestSyncParameters body) + { + return V3ClientExternalSystemRequestSyncAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientExternalSystemRequestSyncAsync(string apiBehaviour, string clientid, ExternalSystemRequestSyncParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/RequestSync?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientExternalSystemGetSyncStatusAsync(string apiBehaviour, string clientid, ExternalSystemGetSyncStatusParameters body) + { + return V3ClientExternalSystemGetSyncStatusAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientExternalSystemGetSyncStatusAsync(string apiBehaviour, string clientid, ExternalSystemGetSyncStatusParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/GetSyncStatus?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientExternalSystemGetSyncStatusAllAsync(string apiBehaviour, string clientid, ExternalSystemGetSyncStatusAllParameters body) + { + return V3ClientExternalSystemGetSyncStatusAllAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientExternalSystemGetSyncStatusAllAsync(string apiBehaviour, string clientid, ExternalSystemGetSyncStatusAllParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/GetSyncStatusAll?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientExternalSystemSyncAllRequestedAsync(string apiBehaviour, string clientid, ExternalSystemSyncAllRequestedParameters body) + { + return V3ClientExternalSystemSyncAllRequestedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientExternalSystemSyncAllRequestedAsync(string apiBehaviour, string clientid, ExternalSystemSyncAllRequestedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ExternalSystem/SyncAllRequested?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientFeatureGetEnabledFeaturesAsync(string clientid) + { + return V3ClientFeatureGetEnabledFeaturesAsync(clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientFeatureGetEnabledFeaturesAsync(string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Feature/GetEnabledFeatures"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of importFiles. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientImportFileUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientImportFileUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of importFiles. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientImportFileUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ImportFile/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of indexRateGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIndexRateGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientIndexRateGroupUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of indexRateGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIndexRateGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IndexRateGroup/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of industryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIndustryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientIndustryTypeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of industryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIndustryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IndustryType/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIndustryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, IndustryTypeGetNotSyncedParameters body) + { + return V3ClientIndustryTypeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIndustryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, IndustryTypeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IndustryType/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate IndustryType record before saving. (Auth) + /// + /// Simplified IndustryType with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIndustryTypePreProcessAsync(string apiBehaviour, string clientid, IndustryTypePreProcessParameters body) + { + return V3ClientIndustryTypePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate IndustryType record before saving. (Auth) + /// + /// Simplified IndustryType with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIndustryTypePreProcessAsync(string apiBehaviour, string clientid, IndustryTypePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IndustryType/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of integratedSystemConfigs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegratedSystemConfigUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientIntegratedSystemConfigUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of integratedSystemConfigs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegratedSystemConfigUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IntegratedSystemConfig/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// This endpoint is made for integration wizard and it will simulate integration token validation. + ///
It is made only for testing purpose. Later we will add more functionality. (Auth) + ///
+ /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientIntegrationValidateTokenAsync(string clientid, string apiBehaviour, TokenDto body) + { + return V3ClientIntegrationValidateTokenAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// This endpoint is made for integration wizard and it will simulate integration token validation. + ///
It is made only for testing purpose. Later we will add more functionality. (Auth) + ///
+ /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientIntegrationValidateTokenAsync(string clientid, string apiBehaviour, TokenDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Integration/ValidateToken?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// This endpoint is made for sc integration to fetch ids that need to be created in SC from CW + ///
It is a temorary endpoint (Auth) + ///
+ /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationTempSpeedycraftGetSkeletonIdsAsync(string clientid, string apiBehaviour, IntegrationSpeedycraftGetSkeletonIdsToSyncParameters body) + { + return V3ClientIntegrationTempSpeedycraftGetSkeletonIdsAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// This endpoint is made for sc integration to fetch ids that need to be created in SC from CW + ///
It is a temorary endpoint (Auth) + ///
+ /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationTempSpeedycraftGetSkeletonIdsAsync(string clientid, string apiBehaviour, IntegrationSpeedycraftGetSkeletonIdsToSyncParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Integration/Temp_SpeedycraftGetSkeletonIds?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// This endpoint returns sync events requested for integration (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationGetSyncEventsAsync(string clientid, string apiBehaviour, IntegrationGetSyncEventsParameters body) + { + return V3ClientIntegrationGetSyncEventsAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// This endpoint returns sync events requested for integration (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationGetSyncEventsAsync(string clientid, string apiBehaviour, IntegrationGetSyncEventsParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Integration/GetSyncEvents?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// This endpoint removes passed synced events (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientIntegrationRemoveSyncEventsAsync(string clientid, string apiBehaviour, System.Collections.Generic.IEnumerable body) + { + return V3ClientIntegrationRemoveSyncEventsAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// This endpoint removes passed synced events (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientIntegrationRemoveSyncEventsAsync(string clientid, string apiBehaviour, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Integration/RemoveSyncEvents?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// This endpoint returns the status of syncs from the common cache (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationGetIntegrationSyncStatusFromCacheAsync(string clientid, GetIntegrationSyncStatusFromCacheRequest body) + { + return V3ClientIntegrationGetIntegrationSyncStatusFromCacheAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// This endpoint returns the status of syncs from the common cache (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationGetIntegrationSyncStatusFromCacheAsync(string clientid, GetIntegrationSyncStatusFromCacheRequest body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Integration/GetIntegrationSyncStatusFromCache"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of integrationStatuses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationStatusUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientIntegrationStatusUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of integrationStatuses. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationStatusUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IntegrationStatus/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationStatusIncomingMoveAndProcessAsync(string apiBehaviour, string clientid, IntegrationStatusIncomingMoveAndProcessParameters body) + { + return V3ClientIntegrationStatusIncomingMoveAndProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationStatusIncomingMoveAndProcessAsync(string apiBehaviour, string clientid, IntegrationStatusIncomingMoveAndProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IntegrationStatus/Incoming_MoveAndProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of integrationStatus_Incomings. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationStatusIncomingUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientIntegrationStatusIncomingUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of integrationStatus_Incomings. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationStatusIncomingUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IntegrationStatus_Incoming/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientIntegrationStatusIncomingIncomingMoveAndProcessAsync(string apiBehaviour, string clientid, IntegrationStatusIncomingMoveAndProcessParameters body) + { + return V3ClientIntegrationStatusIncomingIncomingMoveAndProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientIntegrationStatusIncomingIncomingMoveAndProcessAsync(string apiBehaviour, string clientid, IntegrationStatusIncomingMoveAndProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/IntegrationStatus_Incoming/Incoming_MoveAndProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of invoices. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientInvoiceUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of invoices. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts InvoiceId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoicePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, InvoiceAttachmentUploadDto body) + { + return V3ClientInvoicePrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts InvoiceId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoicePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, InvoiceAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoicePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientInvoicePrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoicePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceCalculateTotalsAsync(string apiBehaviour, string clientid, InvoiceCalculateTotalsParameters body) + { + return V3ClientInvoiceCalculateTotalsAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceCalculateTotalsAsync(string apiBehaviour, string clientid, InvoiceCalculateTotalsParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/CalculateTotals?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceCancelAsync(string apiBehaviour, string clientid, InvoiceCancelParameters body) + { + return V3ClientInvoiceCancelAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceCancelAsync(string apiBehaviour, string clientid, InvoiceCancelParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/Cancel?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceExecuteDimensionInvoiceTemplateAsync(string apiBehaviour, string clientid, InvoiceExecuteDimensionInvoiceTemplateParameters body) + { + return V3ClientInvoiceExecuteDimensionInvoiceTemplateAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceExecuteDimensionInvoiceTemplateAsync(string apiBehaviour, string clientid, InvoiceExecuteDimensionInvoiceTemplateParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/ExecuteDimensionInvoiceTemplate?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceExecuteInvoiceRuleAsync(string apiBehaviour, string clientid, InvoiceExecuteInvoiceRuleParameters body) + { + return V3ClientInvoiceExecuteInvoiceRuleAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceExecuteInvoiceRuleAsync(string apiBehaviour, string clientid, InvoiceExecuteInvoiceRuleParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/ExecuteInvoiceRule?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceExecuteInvoiceTemplateAsync(string apiBehaviour, string clientid, InvoiceExecuteInvoiceTemplateParameters body) + { + return V3ClientInvoiceExecuteInvoiceTemplateAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceExecuteInvoiceTemplateAsync(string apiBehaviour, string clientid, InvoiceExecuteInvoiceTemplateParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/ExecuteInvoiceTemplate?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceGetNotSyncedAsync(string apiBehaviour, string clientid, InvoiceGetNotSyncedParameters body) + { + return V3ClientInvoiceGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceGetNotSyncedAsync(string apiBehaviour, string clientid, InvoiceGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceUpdateProductNoteLineAsync(string apiBehaviour, string clientid, InvoiceUpdateProductNoteLineParameters body) + { + return V3ClientInvoiceUpdateProductNoteLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceUpdateProductNoteLineAsync(string apiBehaviour, string clientid, InvoiceUpdateProductNoteLineParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/UpdateProductNoteLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceUpsertInvoiceLineSessionAsync(string apiBehaviour, string clientid, InvoiceUpsertInvoiceLineSessionParameters body) + { + return V3ClientInvoiceUpsertInvoiceLineSessionAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceUpsertInvoiceLineSessionAsync(string apiBehaviour, string clientid, InvoiceUpsertInvoiceLineSessionParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/UpsertInvoiceLine_Session?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceGetNotSyncedLineAsync(string apiBehaviour, string clientid, InvoiceLineGetNotSyncedParameters body) + { + return V3ClientInvoiceGetNotSyncedLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceGetNotSyncedLineAsync(string apiBehaviour, string clientid, InvoiceLineGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/GetNotSyncedLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate InvoiceLine record before saving. (Auth) + /// + /// Simplified InvoiceLine with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoicePreProcessLineAsync(string apiBehaviour, string clientid, InvoiceLinePreProcessParameters body) + { + return V3ClientInvoicePreProcessLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate InvoiceLine record before saving. (Auth) + /// + /// Simplified InvoiceLine with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoicePreProcessLineAsync(string apiBehaviour, string clientid, InvoiceLinePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/PreProcessLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoiceImportInvoiceWithDataAsync(string clientid, ImportInvoiceWithDataCommand body) + { + return V3ClientInvoiceImportInvoiceWithDataAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoiceImportInvoiceWithDataAsync(string clientid, ImportInvoiceWithDataCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/ImportInvoiceWithData"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoiceGetInvoiceLinesByRuleAsync(int? assignmentId, int? invoiceLineRuleId, bool? vATFree, string clientid) + { + return V3ClientInvoiceGetInvoiceLinesByRuleAsync(assignmentId, invoiceLineRuleId, vATFree, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoiceGetInvoiceLinesByRuleAsync(int? assignmentId, int? invoiceLineRuleId, bool? vATFree, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/GetInvoiceLinesByRule?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (assignmentId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("AssignmentId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(assignmentId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (invoiceLineRuleId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("InvoiceLineRuleId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(invoiceLineRuleId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (vATFree != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("VATFree") + "=").Append(System.Uri.EscapeDataString(ConvertToString(vATFree, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoiceCreateInvoiceAsync(string clientid, CreateInvoiceCommand body) + { + return V3ClientInvoiceCreateInvoiceAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoiceCreateInvoiceAsync(string clientid, CreateInvoiceCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/CreateInvoice"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + [System.Obsolete] + public virtual System.Threading.Tasks.Task> V3ClientInvoiceCancelInvoiceAsync(string clientid, InvoiceCancelParameters body) + { + return V3ClientInvoiceCancelInvoiceAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + [System.Obsolete] + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceCancelInvoiceAsync(string clientid, InvoiceCancelParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/CancelInvoice"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("PUT"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoiceCreateCreditNoteAsync(string clientid, CreateCreditNoteCommand body) + { + return V3ClientInvoiceCreateCreditNoteAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoiceCreateCreditNoteAsync(string clientid, CreateCreditNoteCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/CreateCreditNote"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoicePreProcessInvoiceLineAsync(string clientid, PreProcessInvoiceLineCommand body) + { + return V3ClientInvoicePreProcessInvoiceLineAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoicePreProcessInvoiceLineAsync(string clientid, PreProcessInvoiceLineCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Invoice/PreProcessInvoiceLine"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of invoiceLineRules. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceLineRuleUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientInvoiceLineRuleUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of invoiceLineRules. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceLineRuleUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/InvoiceLineRule/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceLineRuleGetNotSyncedAsync(string apiBehaviour, string clientid, InvoiceLineRuleGetNotSyncedParameters body) + { + return V3ClientInvoiceLineRuleGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceLineRuleGetNotSyncedAsync(string apiBehaviour, string clientid, InvoiceLineRuleGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/InvoiceLineRule/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate InvoiceLineRule record before saving. (Auth) + /// + /// Simplified InvoiceLineRule with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceLineRulePreProcessAsync(string apiBehaviour, string clientid, InvoiceLineRulePreProcessParameters body) + { + return V3ClientInvoiceLineRulePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate InvoiceLineRule record before saving. (Auth) + /// + /// Simplified InvoiceLineRule with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceLineRulePreProcessAsync(string apiBehaviour, string clientid, InvoiceLineRulePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/InvoiceLineRule/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientInvoiceLineRuleSetInvoiceLineRuleWageCodeTypesAsync(string clientid, SetInvoiceLineRuleWageCodeTypesCommand body) + { + return V3ClientInvoiceLineRuleSetInvoiceLineRuleWageCodeTypesAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientInvoiceLineRuleSetInvoiceLineRuleWageCodeTypesAsync(string clientid, SetInvoiceLineRuleWageCodeTypesCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/InvoiceLineRule/SetInvoiceLineRuleWageCodeTypes"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of invoiceTemplates. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceTemplateUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientInvoiceTemplateUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of invoiceTemplates. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceTemplateUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/InvoiceTemplate/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate InvoiceTemplate record before saving. (Auth) + /// + /// Simplified InvoiceTemplate with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientInvoiceTemplatePreProcessAsync(string apiBehaviour, string clientid, InvoiceTemplatePreProcessParameters body) + { + return V3ClientInvoiceTemplatePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate InvoiceTemplate record before saving. (Auth) + /// + /// Simplified InvoiceTemplate with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientInvoiceTemplatePreProcessAsync(string apiBehaviour, string clientid, InvoiceTemplatePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/InvoiceTemplate/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of jobCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientJobCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientJobCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of jobCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientJobCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/JobCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientJobCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, JobCategoryGetNotSyncedParameters body) + { + return V3ClientJobCategoryGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientJobCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, JobCategoryGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/JobCategory/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate JobCategory record before saving. (Auth) + /// + /// Simplified JobCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientJobCategoryPreProcessAsync(string apiBehaviour, string clientid, JobCategoryPreProcessParameters body) + { + return V3ClientJobCategoryPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate JobCategory record before saving. (Auth) + /// + /// Simplified JobCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientJobCategoryPreProcessAsync(string apiBehaviour, string clientid, JobCategoryPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/JobCategory/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of ledgerAccounts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientLedgerAccountUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientLedgerAccountUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of ledgerAccounts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientLedgerAccountUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/LedgerAccount/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientLedgerAccountGetNotSyncedAsync(string apiBehaviour, string clientid, LedgerAccountGetNotSyncedParameters body) + { + return V3ClientLedgerAccountGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientLedgerAccountGetNotSyncedAsync(string apiBehaviour, string clientid, LedgerAccountGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/LedgerAccount/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of mapDatas. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientMapDataUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientMapDataUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of mapDatas. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientMapDataUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/MapData/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Initialize the MapData table with all entities the user need to make mapping decisions on. (Auth) + /// + /// + /// This fills in the MapData table with relevant records from the client db \ + ///
in practice, after calling it, the MapData table is ready to be presented. \ + ///
\ + ///
This method will remember final user choices, and can safely be called \ + ///
again when there are changes in the mapped data either in MapDataValue or any of the corresponding registers in CW. \ + ///
\ + ///
**Note:** the MapDataIDs might change between runs, but the users selection will be retained across IDs. \ + ///
If "clearExistingData" is true, the current user choices will be discarded. \ + ///
\ + ///
MapDataValueID will be auto set if an exact match is found. \ + ///
Suggested_MapDataValueID will always be set and reflect the best detected match if one is found. \ + ///
Partial and fuzzy matches are supported. \ + ///
\ + ///
Suggested_MapDataValueID is intended to show the best possble match at any given time, while \ + ///
MapDataValueID contains real choices made. \ + ///
The latter is auto set when matches are exact as a time-saving feature for end-users. + ///
+ /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientMapDataPrepareAsync(string apiBehaviour, string clientid, MapDataPrepareParameters body) + { + return V3ClientMapDataPrepareAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Initialize the MapData table with all entities the user need to make mapping decisions on. (Auth) + /// + /// + /// This fills in the MapData table with relevant records from the client db \ + ///
in practice, after calling it, the MapData table is ready to be presented. \ + ///
\ + ///
This method will remember final user choices, and can safely be called \ + ///
again when there are changes in the mapped data either in MapDataValue or any of the corresponding registers in CW. \ + ///
\ + ///
**Note:** the MapDataIDs might change between runs, but the users selection will be retained across IDs. \ + ///
If "clearExistingData" is true, the current user choices will be discarded. \ + ///
\ + ///
MapDataValueID will be auto set if an exact match is found. \ + ///
Suggested_MapDataValueID will always be set and reflect the best detected match if one is found. \ + ///
Partial and fuzzy matches are supported. \ + ///
\ + ///
Suggested_MapDataValueID is intended to show the best possble match at any given time, while \ + ///
MapDataValueID contains real choices made. \ + ///
The latter is auto set when matches are exact as a time-saving feature for end-users. + ///
+ /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientMapDataPrepareAsync(string apiBehaviour, string clientid, MapDataPrepareParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/MapData/Prepare?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of mapDataValues. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientMapDataValueUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientMapDataValueUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of mapDataValues. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientMapDataValueUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/MapDataValue/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of paymentTerms. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientPaymentTermUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientPaymentTermUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of paymentTerms. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientPaymentTermUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/PaymentTerm/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientPaymentTermGetNotSyncedAsync(string apiBehaviour, string clientid, PaymentTermGetNotSyncedParameters body) + { + return V3ClientPaymentTermGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientPaymentTermGetNotSyncedAsync(string apiBehaviour, string clientid, PaymentTermGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/PaymentTerm/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of permissions. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientPermissionUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientPermissionUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of permissions. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientPermissionUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Permission/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of products. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProductUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of products. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Product/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductGetNotSyncedAsync(string apiBehaviour, string clientid, ProductGetNotSyncedParameters body) + { + return V3ClientProductGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductGetNotSyncedAsync(string apiBehaviour, string clientid, ProductGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Product/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate Product record before saving. (Auth) + /// + /// Simplified Product with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductPreProcessAsync(string apiBehaviour, string clientid, ProductPreProcessParameters body) + { + return V3ClientProductPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate Product record before saving. (Auth) + /// + /// Simplified Product with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductPreProcessAsync(string apiBehaviour, string clientid, ProductPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Product/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductUpsertWithSupplierIndustryTypeAsync(string apiBehaviour, string clientid, ProductUpsertWithSupplierIndustryTypeParameters body) + { + return V3ClientProductUpsertWithSupplierIndustryTypeAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductUpsertWithSupplierIndustryTypeAsync(string apiBehaviour, string clientid, ProductUpsertWithSupplierIndustryTypeParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Product/UpsertWithSupplierIndustryType?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of productAgreements. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductAgreementUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProductAgreementUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of productAgreements. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductAgreementUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductAgreement/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductAgreementGetNotSyncedAsync(string apiBehaviour, string clientid, ProductAgreementGetNotSyncedParameters body) + { + return V3ClientProductAgreementGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductAgreementGetNotSyncedAsync(string apiBehaviour, string clientid, ProductAgreementGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductAgreement/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate ProductAgreement record before saving. (Auth) + /// + /// Simplified ProductAgreement with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductAgreementPreProcessAsync(string apiBehaviour, string clientid, ProductAgreementPreProcessParameters body) + { + return V3ClientProductAgreementPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate ProductAgreement record before saving. (Auth) + /// + /// Simplified ProductAgreement with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductAgreementPreProcessAsync(string apiBehaviour, string clientid, ProductAgreementPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductAgreement/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductAgreementGetNotSyncedDetailAsync(string apiBehaviour, string clientid, ProductAgreementDetailGetNotSyncedParameters body) + { + return V3ClientProductAgreementGetNotSyncedDetailAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductAgreementGetNotSyncedDetailAsync(string apiBehaviour, string clientid, ProductAgreementDetailGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductAgreement/GetNotSyncedDetail?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of productImportFileSets. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductImportFileSetUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProductImportFileSetUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of productImportFileSets. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductImportFileSetUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductImportFileSet/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Get prices for specified assignment and product supplier industry types (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteCalculatePriceForProductPickerAsync(string clientid, CalculatePriceForProductPickerDto body) + { + return V3ClientProductNoteCalculatePriceForProductPickerAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Get prices for specified assignment and product supplier industry types (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteCalculatePriceForProductPickerAsync(string clientid, CalculatePriceForProductPickerDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/CalculatePriceForProductPicker"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of productNotes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProductNoteUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of productNotes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts ProductNoteId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientProductNotePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, ProductNoteAttachmentUploadDto body) + { + return V3ClientProductNotePrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts ProductNoteId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientProductNotePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, ProductNoteAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientProductNotePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientProductNotePrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientProductNotePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteGetNotSyncedAsync(string apiBehaviour, string clientid, ProductNoteGetNotSyncedParameters body) + { + return V3ClientProductNoteGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteGetNotSyncedAsync(string apiBehaviour, string clientid, ProductNoteGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteMoveToAssignmentAsync(string apiBehaviour, string clientid, ProductNoteMoveToAssignmentParameters body) + { + return V3ClientProductNoteMoveToAssignmentAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteMoveToAssignmentAsync(string apiBehaviour, string clientid, ProductNoteMoveToAssignmentParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/MoveToAssignment?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteMoveToStorageAsync(string apiBehaviour, string clientid, ProductNoteMoveToStorageParameters body) + { + return V3ClientProductNoteMoveToStorageAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteMoveToStorageAsync(string apiBehaviour, string clientid, ProductNoteMoveToStorageParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/MoveToStorage?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNotePreProcessProductNoteLineAsync(string apiBehaviour, string clientid, ProductNotePreProcessProductNoteLineParameters body) + { + return V3ClientProductNotePreProcessProductNoteLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNotePreProcessProductNoteLineAsync(string apiBehaviour, string clientid, ProductNotePreProcessProductNoteLineParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/PreProcessProductNoteLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteGetNotSyncedLineAsync(string apiBehaviour, string clientid, ProductNoteLineGetNotSyncedParameters body) + { + return V3ClientProductNoteGetNotSyncedLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteGetNotSyncedLineAsync(string apiBehaviour, string clientid, ProductNoteLineGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/GetNotSyncedLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteMoveLinesToAssignmentAsync(string apiBehaviour, string clientid, ProductNoteMoveLinesToAssignmentParameters body) + { + return V3ClientProductNoteMoveLinesToAssignmentAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteMoveLinesToAssignmentAsync(string apiBehaviour, string clientid, ProductNoteMoveLinesToAssignmentParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/MoveLinesToAssignment?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductNoteMoveLinesToAssignmentOrStorageAsync(string apiBehaviour, string clientid, ProductNoteMoveLinesToAssignmentOrStorageParameters body) + { + return V3ClientProductNoteMoveLinesToAssignmentOrStorageAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductNoteMoveLinesToAssignmentOrStorageAsync(string apiBehaviour, string clientid, ProductNoteMoveLinesToAssignmentOrStorageParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductNote/MoveLinesToAssignmentOrStorage?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of productSupplierIndustryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductSupplierIndustryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProductSupplierIndustryTypeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of productSupplierIndustryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductSupplierIndustryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductSupplierIndustryType/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductSupplierIndustryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, ProductSupplierIndustryTypeGetNotSyncedParameters body) + { + return V3ClientProductSupplierIndustryTypeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductSupplierIndustryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, ProductSupplierIndustryTypeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductSupplierIndustryType/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of productSyncs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProductSyncUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProductSyncUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of productSyncs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProductSyncUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProductSync/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projects. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projects. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Project/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts ProjectId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientProjectPrepareAttachmentUploadAsync(string clientid, string apiBehaviour, ProjectAttachmentUploadDto body) + { + return V3ClientProjectPrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts ProjectId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientProjectPrepareAttachmentUploadAsync(string clientid, string apiBehaviour, ProjectAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Project/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientProjectPrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientProjectPrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientProjectPrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Project/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectGetNotSyncedParameters body) + { + return V3ClientProjectGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Project/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate Project record before saving. (Auth) + /// + /// Simplified Project with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectPreProcessAsync(string apiBehaviour, string clientid, ProjectPreProcessParameters body) + { + return V3ClientProjectPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate Project record before saving. (Auth) + /// + /// Simplified Project with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectPreProcessAsync(string apiBehaviour, string clientid, ProjectPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Project/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectGetNotSyncedContactAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body) + { + return V3ClientProjectGetNotSyncedContactAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectGetNotSyncedContactAsync(string apiBehaviour, string clientid, ContactGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Project/GetNotSyncedContact?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectAccounts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectAccountUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectAccountUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectAccounts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectAccountUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectAccount/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectAccountGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectAccountGetNotSyncedParameters body) + { + return V3ClientProjectAccountGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectAccountGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectAccountGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectAccount/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate ProjectAccount record before saving. (Auth) + /// + /// Simplified ProjectAccount with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectAccountPreProcessAsync(string apiBehaviour, string clientid, ProjectAccountPreProcessParameters body) + { + return V3ClientProjectAccountPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate ProjectAccount record before saving. (Auth) + /// + /// Simplified ProjectAccount with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectAccountPreProcessAsync(string apiBehaviour, string clientid, ProjectAccountPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectAccount/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectAccountCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectAccountCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectAccountCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectAccountCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectAccountCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectAccountCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectAccountReportCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectAccountReportCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectAccountReportCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectAccountReportCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectAccountReportCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectAccountReportCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectAccountReportCategoryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectAccountReportCategoryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectAccountReportCategoryTypeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectAccountReportCategoryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectAccountReportCategoryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectAccountReportCategoryType/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectGroupUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectGroup/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectGroupGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectGroupGetNotSyncedParameters body) + { + return V3ClientProjectGroupGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectGroupGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectGroupGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectGroup/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectPeriods. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectPeriodUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectPeriodUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectPeriods. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectPeriodUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectPeriod/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectReports. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectReportUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectReportUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectReports. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectReportUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectReport/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate ProjectReport record before saving. (Auth) + /// + /// Simplified ProjectReport with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectReportPreProcessAsync(string apiBehaviour, string clientid, ProjectReportPreProcessParameters body) + { + return V3ClientProjectReportPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate ProjectReport record before saving. (Auth) + /// + /// Simplified ProjectReport with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectReportPreProcessAsync(string apiBehaviour, string clientid, ProjectReportPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectReport/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of projectTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientProjectTypeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of projectTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectType/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientProjectTypeGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectTypeGetNotSyncedParameters body) + { + return V3ClientProjectTypeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientProjectTypeGetNotSyncedAsync(string apiBehaviour, string clientid, ProjectTypeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ProjectType/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of purchaseAgreements. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientPurchaseAgreementUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientPurchaseAgreementUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of purchaseAgreements. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientPurchaseAgreementUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/PurchaseAgreement/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of roles. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientRoleUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientRoleUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of roles. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientRoleUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Role/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of rolePermissions. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientRolePermissionUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientRolePermissionUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of rolePermissions. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientRolePermissionUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/RolePermission/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of services. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientServiceUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of services. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Service/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceGetNotSyncedAsync(string apiBehaviour, string clientid, ServiceGetNotSyncedParameters body) + { + return V3ClientServiceGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceGetNotSyncedAsync(string apiBehaviour, string clientid, ServiceGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Service/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceMoveToAssignmentAsync(string apiBehaviour, string clientid, ServiceMoveToAssignmentParameters body) + { + return V3ClientServiceMoveToAssignmentAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceMoveToAssignmentAsync(string apiBehaviour, string clientid, ServiceMoveToAssignmentParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Service/MoveToAssignment?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate Service record before saving. (Auth) + /// + /// Simplified Service with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServicePreProcessAsync(string apiBehaviour, string clientid, ServicePreProcessParameters body) + { + return V3ClientServicePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate Service record before saving. (Auth) + /// + /// Simplified Service with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServicePreProcessAsync(string apiBehaviour, string clientid, ServicePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Service/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of serviceAgreements. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceAgreementUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientServiceAgreementUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of serviceAgreements. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceAgreementUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ServiceAgreement/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceAgreementGetNotSyncedAsync(string apiBehaviour, string clientid, ServiceAgreementGetNotSyncedParameters body) + { + return V3ClientServiceAgreementGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceAgreementGetNotSyncedAsync(string apiBehaviour, string clientid, ServiceAgreementGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ServiceAgreement/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate ServiceAgreement record before saving. (Auth) + /// + /// Simplified ServiceAgreement with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceAgreementPreProcessAsync(string apiBehaviour, string clientid, ServiceAgreementPreProcessParameters body) + { + return V3ClientServiceAgreementPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate ServiceAgreement record before saving. (Auth) + /// + /// Simplified ServiceAgreement with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceAgreementPreProcessAsync(string apiBehaviour, string clientid, ServiceAgreementPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ServiceAgreement/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceAgreementGetNotSyncedDetailAsync(string apiBehaviour, string clientid, ServiceAgreementDetailGetNotSyncedParameters body) + { + return V3ClientServiceAgreementGetNotSyncedDetailAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceAgreementGetNotSyncedDetailAsync(string apiBehaviour, string clientid, ServiceAgreementDetailGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ServiceAgreement/GetNotSyncedDetail?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate ServiceAgreementDetail record before saving. (Auth) + /// + /// Simplified ServiceAgreementDetail with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceAgreementPreProcessDetailAsync(string apiBehaviour, string clientid, ServiceAgreementDetailPreProcessParameters body) + { + return V3ClientServiceAgreementPreProcessDetailAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate ServiceAgreementDetail record before saving. (Auth) + /// + /// Simplified ServiceAgreementDetail with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceAgreementPreProcessDetailAsync(string apiBehaviour, string clientid, ServiceAgreementDetailPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ServiceAgreement/PreProcessDetail?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of serviceContracts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientServiceContractUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientServiceContractUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of serviceContracts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientServiceContractUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/ServiceContract/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of settings_Assignments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSettingsAssignmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSettingsAssignmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of settings_Assignments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSettingsAssignmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Settings_Assignment/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of settings_Mains. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSettingsMainUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSettingsMainUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of settings_Mains. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSettingsMainUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Settings_Main/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of settings_ProductImports. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSettingsProductImportUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSettingsProductImportUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of settings_ProductImports. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSettingsProductImportUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Settings_ProductImport/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of settings_Users. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSettingsUserUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSettingsUserUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of settings_Users. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSettingsUserUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Settings_User/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of stocks. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStockUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientStockUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of stocks. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStockUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Stock/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStockGetNotSyncedAsync(string apiBehaviour, string clientid, StockGetNotSyncedParameters body) + { + return V3ClientStockGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStockGetNotSyncedAsync(string apiBehaviour, string clientid, StockGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Stock/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of stockCounts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStockCountUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientStockCountUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of stockCounts. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStockCountUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/StockCount/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Adjust product quantity and price on specific storage (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientStorageStockAdjustmentAsync(string apiBehaviour, string clientid, System.Collections.Generic.IEnumerable body) + { + return V3ClientStorageStockAdjustmentAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Adjust product quantity and price on specific storage (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientStorageStockAdjustmentAsync(string apiBehaviour, string clientid, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/StockAdjustment?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of storages. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStorageUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientStorageUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of storages. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStorageUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStorageGetNotSyncedAsync(string apiBehaviour, string clientid, StorageGetNotSyncedParameters body) + { + return V3ClientStorageGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStorageGetNotSyncedAsync(string apiBehaviour, string clientid, StorageGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStorageGetNotSyncedStockAsync(string apiBehaviour, string clientid, StockGetNotSyncedParameters body) + { + return V3ClientStorageGetNotSyncedStockAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStorageGetNotSyncedStockAsync(string apiBehaviour, string clientid, StockGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/GetNotSyncedStock?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStorageGetNotSyncedStockTransactionAsync(string apiBehaviour, string clientid, StockTransactionGetNotSyncedParameters body) + { + return V3ClientStorageGetNotSyncedStockTransactionAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStorageGetNotSyncedStockTransactionAsync(string apiBehaviour, string clientid, StockTransactionGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/GetNotSyncedStockTransaction?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientStorageStockTransferAsync(string apiBehaviour, string clientid, StockTransferParameters body) + { + return V3ClientStorageStockTransferAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientStorageStockTransferAsync(string apiBehaviour, string clientid, StockTransferParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/StockTransfer?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientStorageStorageTransferAsync(string apiBehaviour, string clientid, StockStorageTransferParameters body) + { + return V3ClientStorageStorageTransferAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientStorageStorageTransferAsync(string apiBehaviour, string clientid, StockStorageTransferParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/StorageTransfer?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStorageAdjustmentPreProcessAsync(string apiBehaviour, string clientid, StockAdjustmentPreProcessParameters body) + { + return V3ClientStorageAdjustmentPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStorageAdjustmentPreProcessAsync(string apiBehaviour, string clientid, StockAdjustmentPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/Adjustment_PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientStorageUpdateAverageCostPriceAsync(string apiBehaviour, string clientid, StockUpdateAverageCostPriceParameters body) + { + return V3ClientStorageUpdateAverageCostPriceAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientStorageUpdateAverageCostPriceAsync(string apiBehaviour, string clientid, StockUpdateAverageCostPriceParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Storage/UpdateAverageCostPrice?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of storageTransfers. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientStorageTransferUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientStorageTransferUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of storageTransfers. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientStorageTransferUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/StorageTransfer/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of suppliers. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSupplierUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of suppliers. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Supplier/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierGetNotSyncedAsync(string apiBehaviour, string clientid, SupplierGetNotSyncedParameters body) + { + return V3ClientSupplierGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierGetNotSyncedAsync(string apiBehaviour, string clientid, SupplierGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Supplier/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body) + { + return V3ClientSupplierGetNotSyncedAddressAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierGetNotSyncedAddressAsync(string apiBehaviour, string clientid, AddressGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Supplier/GetNotSyncedAddress?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of supplierIndustryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSupplierIndustryTypeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of supplierIndustryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierIndustryType/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, SupplierIndustryTypeGetNotSyncedParameters body) + { + return V3ClientSupplierIndustryTypeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, SupplierIndustryTypeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierIndustryType/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate SupplierIndustryType record before saving. (Auth) + /// + /// Simplified SupplierIndustryType with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierIndustryTypePreProcessAsync(string apiBehaviour, string clientid, SupplierIndustryTypePreProcessParameters body) + { + return V3ClientSupplierIndustryTypePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate SupplierIndustryType record before saving. (Auth) + /// + /// Simplified SupplierIndustryType with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierIndustryTypePreProcessAsync(string apiBehaviour, string clientid, SupplierIndustryTypePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierIndustryType/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Deactivates products for a supplier industry type (Auth) + /// + /// + /// The intended use is to deactivate products not in use for a supplier industry type \ + ///
\ + ///
The affected ProductSupplierIndustryTypes will get Sys_Deactivated = 1 and Inactive = 1 \ + ///
\ + ///
Note that for ProductSupplierIndustryTypes where there are items in stock, and this is the only active \ + ///
source for the stock, the ProductSupplierIndustryType will be set to Inactive but will NOT be \ + ///
set to Sys_Deactivated. \ + ///
\ + ///
If the procedure is run in simulation mode, no changes will be done to any data but the number of affected items \ + ///
will still be returned. \ + ///
+ /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeProductDeactivateAsync(string apiBehaviour, string clientid, SupplierIndustryTypeProductDeactivateParameters body) + { + return V3ClientSupplierIndustryTypeProductDeactivateAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Deactivates products for a supplier industry type (Auth) + /// + /// + /// The intended use is to deactivate products not in use for a supplier industry type \ + ///
\ + ///
The affected ProductSupplierIndustryTypes will get Sys_Deactivated = 1 and Inactive = 1 \ + ///
\ + ///
Note that for ProductSupplierIndustryTypes where there are items in stock, and this is the only active \ + ///
source for the stock, the ProductSupplierIndustryType will be set to Inactive but will NOT be \ + ///
set to Sys_Deactivated. \ + ///
\ + ///
If the procedure is run in simulation mode, no changes will be done to any data but the number of affected items \ + ///
will still be returned. \ + ///
+ /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeProductDeactivateAsync(string apiBehaviour, string clientid, SupplierIndustryTypeProductDeactivateParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierIndustryType/ProductDeactivate?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Reactivates products for a supplier industry type (Auth) + /// + /// + /// This procedures removes Sys_Deactivated and Inactive flags from ProductSupplierIndustryTypes. \ + ///
\ + ///
It is intended for reversing calls to ProductDeactivate. \ + ///
\ + ///
If the procedure is run in simulation mode, no changes will be done to any data but the number of affected items \ + ///
will still be returned. \ + ///
+ /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeProductReactivateAsync(string apiBehaviour, string clientid, SupplierIndustryTypeProductReactivateParameters body) + { + return V3ClientSupplierIndustryTypeProductReactivateAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Reactivates products for a supplier industry type (Auth) + /// + /// + /// This procedures removes Sys_Deactivated and Inactive flags from ProductSupplierIndustryTypes. \ + ///
\ + ///
It is intended for reversing calls to ProductDeactivate. \ + ///
\ + ///
If the procedure is run in simulation mode, no changes will be done to any data but the number of affected items \ + ///
will still be returned. \ + ///
+ /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeProductReactivateAsync(string apiBehaviour, string clientid, SupplierIndustryTypeProductReactivateParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierIndustryType/ProductReactivate?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of supplierIndustryTypeFtpInfos. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeFtpInfoUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSupplierIndustryTypeFtpInfoUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of supplierIndustryTypeFtpInfos. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierIndustryTypeFtpInfoUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierIndustryTypeFtpInfo/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of supplierInvoices. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSupplierInvoiceUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of supplierInvoices. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts SupplierInvoiceId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientSupplierInvoicePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, SupplierInvoiceAttachmentUploadDto body) + { + return V3ClientSupplierInvoicePrepareAttachmentUploadAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts SupplierInvoiceId, Creates blob with write SAS token and saves meta data for attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientSupplierInvoicePrepareAttachmentUploadAsync(string clientid, string apiBehaviour, SupplierInvoiceAttachmentUploadDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/PrepareAttachmentUpload?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientSupplierInvoicePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body) + { + return V3ClientSupplierInvoicePrepareAttachmentUploadByIdAsync(clientid, apiBehaviour, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField + /// Attachment for which we are preparing upload + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientSupplierInvoicePrepareAttachmentUploadByIdAsync(string clientid, string apiBehaviour, AttachmentUploadByIdDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/PrepareAttachmentUploadById?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 201) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedAsync(string apiBehaviour, string clientid, SupplierInvoiceGetNotSyncedParameters body) + { + return V3ClientSupplierInvoiceGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedAsync(string apiBehaviour, string clientid, SupplierInvoiceGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceReverseAsync(string apiBehaviour, string clientid, SupplierInvoiceReverseParameters body) + { + return V3ClientSupplierInvoiceReverseAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceReverseAsync(string apiBehaviour, string clientid, SupplierInvoiceReverseParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/Reverse?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedProductNoteAsync(string apiBehaviour, string clientid, ProductNoteGetNotSyncedParameters body) + { + return V3ClientSupplierInvoiceGetNotSyncedProductNoteAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedProductNoteAsync(string apiBehaviour, string clientid, ProductNoteGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/GetNotSyncedProductNote?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceMoveToAssignmentProductNoteAsync(string apiBehaviour, string clientid, ProductNoteMoveToAssignmentParameters body) + { + return V3ClientSupplierInvoiceMoveToAssignmentProductNoteAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceMoveToAssignmentProductNoteAsync(string apiBehaviour, string clientid, ProductNoteMoveToAssignmentParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/MoveToAssignmentProductNote?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceMoveToStorageProductNoteAsync(string apiBehaviour, string clientid, ProductNoteMoveToStorageParameters body) + { + return V3ClientSupplierInvoiceMoveToStorageProductNoteAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceMoveToStorageProductNoteAsync(string apiBehaviour, string clientid, ProductNoteMoveToStorageParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/MoveToStorageProductNote?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoicePreProcessProductNoteLineProductNoteAsync(string apiBehaviour, string clientid, ProductNotePreProcessProductNoteLineParameters body) + { + return V3ClientSupplierInvoicePreProcessProductNoteLineProductNoteAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoicePreProcessProductNoteLineProductNoteAsync(string apiBehaviour, string clientid, ProductNotePreProcessProductNoteLineParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/PreProcessProductNoteLineProductNote?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedProductNoteLineAsync(string apiBehaviour, string clientid, ProductNoteLineGetNotSyncedParameters body) + { + return V3ClientSupplierInvoiceGetNotSyncedProductNoteLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedProductNoteLineAsync(string apiBehaviour, string clientid, ProductNoteLineGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/GetNotSyncedProductNoteLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedLineAsync(string apiBehaviour, string clientid, SupplierInvoiceLineGetNotSyncedParameters body) + { + return V3ClientSupplierInvoiceGetNotSyncedLineAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceGetNotSyncedLineAsync(string apiBehaviour, string clientid, SupplierInvoiceLineGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoice/GetNotSyncedLine?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of supplierInvoiceAttachments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceAttachmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSupplierInvoiceAttachmentUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of supplierInvoiceAttachments. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceAttachmentUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoiceAttachment/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of supplierInvoiceProductMatchs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSupplierInvoiceProductMatchUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSupplierInvoiceProductMatchUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of supplierInvoiceProductMatchs. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSupplierInvoiceProductMatchUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SupplierInvoiceProductMatch/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of systemNotifications. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientSystemNotificationUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientSystemNotificationUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of systemNotifications. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientSystemNotificationUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/SystemNotification/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of teams. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientTeamUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientTeamUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of teams. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientTeamUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/Team/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientUserGetPermissionsAsync(string clientid) + { + return V3ClientUserGetPermissionsAsync(clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientUserGetPermissionsAsync(string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/User/GetPermissions"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth policies: Access.Write; roles: clientadmin) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientUserCreateUserAsync(string clientid, CreateUserCommand body) + { + return V3ClientUserCreateUserAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth policies: Access.Write; roles: clientadmin) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientUserCreateUserAsync(string clientid, CreateUserCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/User/CreateUser"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientUserUpdateOwnProfileAsync(string clientid, UpdateOwnProfileCommand body) + { + return V3ClientUserUpdateOwnProfileAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientUserUpdateOwnProfileAsync(string clientid, UpdateOwnProfileCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/User/UpdateOwnProfile"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("PUT"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth policies: Access.Write; roles: clientadmin) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientUserUpdateUserAsync(string clientid, UpdateUserCommand body) + { + return V3ClientUserUpdateUserAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth policies: Access.Write; roles: clientadmin) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientUserUpdateUserAsync(string clientid, UpdateUserCommand body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/User/UpdateUser"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("PUT"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Gets all UserCommands defined for the current user (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientUserCommandGetUserCommandsAsync(string clientid) + { + return V3ClientUserCommandGetUserCommandsAsync(clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Gets all UserCommands defined for the current user (Auth) + /// + /// Id of a current client. + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientUserCommandGetUserCommandsAsync(string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/UserCommand/GetUserCommands"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of userCommands. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientUserCommandUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientUserCommandUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of userCommands. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientUserCommandUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/UserCommand/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of userRoles. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientUserRoleUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientUserRoleUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of userRoles. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientUserRoleUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/UserRole/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of vATRates. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientVATRateUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientVATRateUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of vATRates. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientVATRateUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/VATRate/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientVATRateGetNotSyncedAsync(string apiBehaviour, string clientid, VATRateGetNotSyncedParameters body) + { + return V3ClientVATRateGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientVATRateGetNotSyncedAsync(string apiBehaviour, string clientid, VATRateGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/VATRate/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wageCodes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWageCodeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wageCodes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCode/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeGetNotSyncedAsync(string apiBehaviour, string clientid, WageCodeGetNotSyncedParameters body) + { + return V3ClientWageCodeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeGetNotSyncedAsync(string apiBehaviour, string clientid, WageCodeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCode/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodePreProcessAsync(string clientid, WageCodePreProcessDto body) + { + return V3ClientWageCodePreProcessAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodePreProcessAsync(string clientid, WageCodePreProcessDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCode/PreProcess"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wageCodeReportCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWageCodeReportCategoryUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wageCodeReportCategories. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategory/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, WageCodeReportCategoryGetNotSyncedParameters body) + { + return V3ClientWageCodeReportCategoryGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryGetNotSyncedAsync(string apiBehaviour, string clientid, WageCodeReportCategoryGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategory/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate WageCodeReportCategory record before saving. (Auth) + /// + /// Simplified WageCodeReportCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryPreProcessAsync(string apiBehaviour, string clientid, WageCodeReportCategoryPreProcessParameters body) + { + return V3ClientWageCodeReportCategoryPreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate WageCodeReportCategory record before saving. (Auth) + /// + /// Simplified WageCodeReportCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryPreProcessAsync(string apiBehaviour, string clientid, WageCodeReportCategoryPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategory/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wageCodeReportCategoryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWageCodeReportCategoryTypeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wageCodeReportCategoryTypes. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategoryType/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, WageCodeReportCategoryTypeGetNotSyncedParameters body) + { + return V3ClientWageCodeReportCategoryTypeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypeGetNotSyncedAsync(string apiBehaviour, string clientid, WageCodeReportCategoryTypeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategoryType/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypeGetNotSyncedWageCodeReportCategoryAsync(string apiBehaviour, string clientid, WageCodeReportCategoryGetNotSyncedParameters body) + { + return V3ClientWageCodeReportCategoryTypeGetNotSyncedWageCodeReportCategoryAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypeGetNotSyncedWageCodeReportCategoryAsync(string apiBehaviour, string clientid, WageCodeReportCategoryGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategoryType/GetNotSyncedWageCodeReportCategory?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate WageCodeReportCategory record before saving. (Auth) + /// + /// Simplified WageCodeReportCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypePreProcessWageCodeReportCategoryAsync(string apiBehaviour, string clientid, WageCodeReportCategoryPreProcessParameters body) + { + return V3ClientWageCodeReportCategoryTypePreProcessWageCodeReportCategoryAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate WageCodeReportCategory record before saving. (Auth) + /// + /// Simplified WageCodeReportCategory with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageCodeReportCategoryTypePreProcessWageCodeReportCategoryAsync(string apiBehaviour, string clientid, WageCodeReportCategoryPreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageCodeReportCategoryType/PreProcessWageCodeReportCategory?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wageGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWageGroupUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wageGroups. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageGroupUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageGroup/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageGroupGetNotSyncedAsync(string apiBehaviour, string clientid, WageGroupGetNotSyncedParameters body) + { + return V3ClientWageGroupGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageGroupGetNotSyncedAsync(string apiBehaviour, string clientid, WageGroupGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageGroup/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wagePeriods. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWagePeriodUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWagePeriodUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wagePeriods. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWagePeriodUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WagePeriod/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWagePeriodGetNotSyncedAsync(string apiBehaviour, string clientid, WagePeriodGetNotSyncedParameters body) + { + return V3ClientWagePeriodGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWagePeriodGetNotSyncedAsync(string apiBehaviour, string clientid, WagePeriodGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WagePeriod/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Export a payroll file for import in an external payroll system (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientWagePeriodExportPayrollFileAsync(string clientid, ExportPayrollFileDto body) + { + return V3ClientWagePeriodExportPayrollFileAsync(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Export a payroll file for import in an external payroll system (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientWagePeriodExportPayrollFileAsync(string clientid, ExportPayrollFileDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WagePeriod/ExportPayrollFile"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Export a payroll file for import in an external payroll system (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientWagePeriodGetPayrollFileAsync(int? wagePeriodId, PayrollFormatEnum? payrollFormat, string separatorChar, bool? includeAssignmentNumber, bool? includeProjectNumber, TextEncodingEnum? textEncoding, bool? includeFormatInfoInFileName, string clientid) + { + return V3ClientWagePeriodGetPayrollFileAsync(wagePeriodId, payrollFormat, separatorChar, includeAssignmentNumber, includeProjectNumber, textEncoding, includeFormatInfoInFileName, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Export a payroll file for import in an external payroll system (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientWagePeriodGetPayrollFileAsync(int? wagePeriodId, PayrollFormatEnum? payrollFormat, string separatorChar, bool? includeAssignmentNumber, bool? includeProjectNumber, TextEncodingEnum? textEncoding, bool? includeFormatInfoInFileName, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WagePeriod/GetPayrollFile?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (wagePeriodId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("wagePeriodId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(wagePeriodId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (payrollFormat != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("payrollFormat") + "=").Append(System.Uri.EscapeDataString(ConvertToString(payrollFormat, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (separatorChar != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("separatorChar") + "=").Append(System.Uri.EscapeDataString(ConvertToString(separatorChar, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (includeAssignmentNumber != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("includeAssignmentNumber") + "=").Append(System.Uri.EscapeDataString(ConvertToString(includeAssignmentNumber, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (includeProjectNumber != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("includeProjectNumber") + "=").Append(System.Uri.EscapeDataString(ConvertToString(includeProjectNumber, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (textEncoding != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("textEncoding") + "=").Append(System.Uri.EscapeDataString(ConvertToString(textEncoding, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (includeFormatInfoInFileName != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("includeFormatInfoInFileName") + "=").Append(System.Uri.EscapeDataString(ConvertToString(includeFormatInfoInFileName, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Export a payroll file for import in an external payroll system (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientWagePeriodExportPayrollFileB64Async(string clientid, ExportPayrollFileDto body) + { + return V3ClientWagePeriodExportPayrollFileB64Async(clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Export a payroll file for import in an external payroll system (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientWagePeriodExportPayrollFileB64Async(string clientid, ExportPayrollFileDto body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WagePeriod/ExportPayrollFileB64"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wageRates. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageRateUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWageRateUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wageRates. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageRateUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRate/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageRateGetNotSyncedAsync(string apiBehaviour, string clientid, WageRateGetNotSyncedParameters body) + { + return V3ClientWageRateGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageRateGetNotSyncedAsync(string apiBehaviour, string clientid, WageRateGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRate/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate WageRate record before saving. (Auth) + /// + /// Simplified WageRate with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageRatePreProcessAsync(string apiBehaviour, string clientid, WageRatePreProcessParameters body) + { + return V3ClientWageRatePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate WageRate record before saving. (Auth) + /// + /// Simplified WageRate with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageRatePreProcessAsync(string apiBehaviour, string clientid, WageRatePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRate/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task V3ClientWageRateGetWageRateClientAsync(string employeeId, string wageCodeId, string clientid) + { + return V3ClientWageRateGetWageRateClientAsync(employeeId, wageCodeId, clientid, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task V3ClientWageRateGetWageRateClientAsync(string employeeId, string wageCodeId, string clientid, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRate/GetWageRateClient?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (employeeId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("EmployeeId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(employeeId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (wageCodeId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("WageCodeId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(wageCodeId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Create or update a list of wageRateEmployees. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageRateEmployeeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body) + { + return V3ClientWageRateEmployeeUpsertAsync(clientid, apiBehaviour, externalSystemId, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Create or update a list of wageRateEmployees. (Auth) + /// + /// Id of a current client. + /// Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string. + ///
Behaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull + ///
When using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos + /// Represents owner system of external ids + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageRateEmployeeUpsertAsync(string clientid, string apiBehaviour, int? externalSystemId, System.Collections.Generic.IEnumerable body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRateEmployee/Upsert?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + if (externalSystemId != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("externalSystemId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(externalSystemId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 207) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageRateEmployeeGetNotSyncedAsync(string apiBehaviour, string clientid, WageRateEmployeeGetNotSyncedParameters body) + { + return V3ClientWageRateEmployeeGetNotSyncedAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// (Auth) + /// + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageRateEmployeeGetNotSyncedAsync(string apiBehaviour, string clientid, WageRateEmployeeGetNotSyncedParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRateEmployee/GetNotSynced?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// Preprocess/validate WageRateEmployee record before saving. (Auth) + /// + /// Simplified WageRateEmployee with the current values from the UI + /// Success + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> V3ClientWageRateEmployeePreProcessAsync(string apiBehaviour, string clientid, WageRateEmployeePreProcessParameters body) + { + return V3ClientWageRateEmployeePreProcessAsync(apiBehaviour, clientid, body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Preprocess/validate WageRateEmployee record before saving. (Auth) + /// + /// Simplified WageRateEmployee with the current values from the UI + /// Success + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> V3ClientWageRateEmployeePreProcessAsync(string apiBehaviour, string clientid, WageRateEmployeePreProcessParameters body, System.Threading.CancellationToken cancellationToken) + { + if (clientid == null) + throw new System.ArgumentNullException("clientid"); + + var urlBuilder_ = new System.Text.StringBuilder(); + urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/v3/client/{clientid}/WageRateEmployee/PreProcess?"); + urlBuilder_.Replace("{clientid}", System.Uri.EscapeDataString(ConvertToString(clientid, System.Globalization.CultureInfo.InvariantCulture))); + if (apiBehaviour != null) + { + urlBuilder_.Append(System.Uri.EscapeDataString("apiBehaviour") + "=").Append(System.Uri.EscapeDataString(ConvertToString(apiBehaviour, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); + } + urlBuilder_.Length--; + + var client_ = _httpClient; + var disposeClient_ = false; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = System.Text.Json.JsonSerializer.Serialize(body, _settings.Value); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 401) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Unauthorized", status_, responseText_, headers_, null); + } + else + if (status_ == 403) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("Forbidden", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) + { + this.Object = responseObject; + this.Text = responseText; + } + + public T Object { get; } + + public string Text { get; } + } + + public bool ReadResponseAsString { get; set; } + + protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) + { + if (response == null || response.Content == null) + { + return new ObjectResponseResult(default(T), string.Empty); + } + + if (ReadResponseAsString) + { + var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + var typedBody = System.Text.Json.JsonSerializer.Deserialize(responseText, JsonSerializerSettings); + return new ObjectResponseResult(typedBody, responseText); + } + catch (System.Text.Json.JsonException exception) + { + var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; + throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); + } + } + else + { + try + { + using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) + { + var typedBody = await System.Text.Json.JsonSerializer.DeserializeAsync(responseStream, JsonSerializerSettings, cancellationToken).ConfigureAwait(false); + return new ObjectResponseResult(typedBody, string.Empty); + } + } + catch (System.Text.Json.JsonException exception) + { + var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; + throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); + } + } + } + + private string ConvertToString(object value, System.Globalization.CultureInfo cultureInfo) + { + if (value == null) + { + return ""; + } + + if (value is System.Enum) + { + var name = System.Enum.GetName(value.GetType(), value); + if (name != null) + { + var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); + if (field != null) + { + var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) + as System.Runtime.Serialization.EnumMemberAttribute; + if (attribute != null) + { + return attribute.Value != null ? attribute.Value : name; + } + } + + var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); + return converted == null ? string.Empty : converted; + } + } + else if (value is bool) + { + return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); + } + else if (value is byte[]) + { + return System.Convert.ToBase64String((byte[]) value); + } + else if (value.GetType().IsArray) + { + var array = System.Linq.Enumerable.OfType((System.Array) value); + return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); + } + + var result = System.Convert.ToString(value, cultureInfo); + return result == null ? "" : result; + } + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddressDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + /// + /// External ID corresponding to AddressId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("addressIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AddressIdExternal { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("address1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Address1 { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("address2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Address2 { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("cadastralUnitNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CadastralUnitNumber { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to Country + ///
Type: string? (Max: 2) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CountryId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("eDokBuildingPlantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EDokBuildingPlantId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("eDokNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EDokNumber { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("eDokPlantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EDokPlantId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("eDokProjectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EDokProjectId { get; set; } + + /// + /// Type: string? (Max: 15) + /// + + [System.Text.Json.Serialization.JsonPropertyName("eDokProjectNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EDokProjectNumber { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("gLN")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string GLN { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("gPSPositionAccuracy")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? GPSPositionAccuracy { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("gPSPositionAltitude")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? GPSPositionAltitude { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("gPSPositionLatitude")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? GPSPositionLatitude { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("gPSPositionLongitude")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? GPSPositionLongitude { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("gPSPositionSourceType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? GPSPositionSourceType { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("leaseholdUnitNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LeaseholdUnitNumber { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("municipalityNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MunicipalityNumber { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name2 { get; set; } + + /// + /// Type: string? (Max: 10) + /// + + [System.Text.Json.Serialization.JsonPropertyName("postalNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PostalNumber { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("postalPlace")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PostalPlace { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("propertyUnitNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PropertyUnitNumber { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sectionUnitNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SectionUnitNumber { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sectionUnitText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SectionUnitText { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("shareUnitNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ShareUnitNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAddresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAddresses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddressGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddressGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddressUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addressIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AddressIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAddresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAddresses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AdminGetRowErrorMessagesParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("table")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Table { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rowId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AdminGetRowErrorMessagesResult + { + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_RowStateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Enum_RowStateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("linkEntity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LinkEntity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("linkId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LinkId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("linkTab")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LinkTab { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userMsgEN")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserMsgEN { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userMsgNO")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserMsgNO { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AppointmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("appointmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AppointmentId { get; set; } + + /// + /// External ID corresponding to AppointmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("appointmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AppointmentIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Will be auto-filled with assignment number and customer name if no value is set and an assignment is referenced on the appointment. + ///
Type: string? (Max: 255) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: DateTime + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateTimeUTC { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: DateTime + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateTimeUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAppointments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAppointments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AppointmentGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AppointmentGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("appointmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AppointmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AppointmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("appointmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AppointmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("appointmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AppointmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAppointments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAppointments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ApprovalStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Waiting")] + Waiting = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Approved")] + Approved = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Rejected")] + Rejected = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentAttachmentId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Assignment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + /// + /// External ID corresponding to AssignmentCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentCategoryIdExternal { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryNumber { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("marginPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? MarginPercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAssignmentCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCategoryGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCategoryGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCategoryPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAssignmentCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCopyDimensionsFromProjectParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCopyDimensionsFromProjectResult + { + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Success { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCopyParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("copyContact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CopyContact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("copyParticipants")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CopyParticipants { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("copyDimension")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CopyDimension { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncAssignmentToSpeedyCraft")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncAssignmentToSpeedyCraft { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internalReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalReference { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentCopyResult + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to CaseHandler_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("caseHandler_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CaseHandler_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_InvoiceTemplateIdExternal { get; set; } + + /// + /// External ID corresponding to Default_ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to JobResponsible_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobResponsible_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobResponsible_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to PaymentTermId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("archived")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Archived { get; set; } + + /// + /// Reference to AssignmentCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentCompleteDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? AssignmentCompleteDateTimeUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentCompleteMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AssignmentCompleteMobileDevice { get; set; } + + /// + /// Type: int? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentNumber { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("caseHandler_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CaseHandler_EmployeeId { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Contact { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("coverageRateFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CoverageRateFixedPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("coverageRateNotFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CoverageRateNotFixedPrice { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// Type: string? (Max: 200) + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerReference { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_InvoiceTemplateId { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ProductAgreementId { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("emailAddress")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmailAddress { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateTimeUTC { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("estimatedCompletionPercentage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? EstimatedCompletionPercentage { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("estimatedTotalHours")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? EstimatedTotalHours { get; set; } + + /// + /// Type: string? (Max: 200) + /// + + [System.Text.Json.Serialization.JsonPropertyName("externalReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalReference { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("fixedPriceAmount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? FixedPriceAmount { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fixedPriceInvoiced")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? FixedPriceInvoiced { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("groupedInvoicing")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? GroupedInvoicing { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internalOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InternalOnly { get; set; } + + /// + /// Type: string? (Max: 200) + /// + + [System.Text.Json.Serialization.JsonPropertyName("internalReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalReference { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobResponsible_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobResponsible_EmployeeId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobResponsibleCompleted")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? JobResponsibleCompleted { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobResponsibleCompletedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? JobResponsibleCompletedUTC { get; set; } + + /// + /// Type: string? (Max: 200) + /// + + [System.Text.Json.Serialization.JsonPropertyName("keyInformation")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string KeyInformation { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("linkedAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LinkedAssignmentId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("marginPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? MarginPercent { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Mobile { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("optimizedAtUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? OptimizedAtUTC { get; set; } + + /// + /// Reference to PaymentTerm + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phone")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Phone { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("pieceworkNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PieceworkNumber { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + /// + /// Type: bool? + /// + + [System.Text.Json.Serialization.JsonPropertyName("readyToInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ReadyToInvoice { get; set; } + + /// + /// Reference to ServiceAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + /// + /// Reference to ServiceContract + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceContractId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceContractId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceInvoiceLimitDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ServiceInvoiceLimitDate { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sortDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? SortDateUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateTimeUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToEconomySystem")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToEconomySystem { get; set; } + + /// + /// The assingment is for internal purposes, and should not be synced with handheld devices. + ///
__When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 255) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_Tags")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_Tags { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("timeSheetAttachmentsNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TimeSheetAttachmentsNumber { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("warrantyDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? WarrantyDate { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_AssignmentProgressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public AssignmentProgressEnum? Enum_AssignmentProgressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_AssignmentStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public AssignmentStatusEnum? Enum_AssignmentStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_AssignmentTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public AssignmentTypeEnum? Enum_AssignmentTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ContractTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ContractTypeEnum? Enum_ContractTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceReserveBilledPriceCalculationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceReserveBilledPriceCalculationEnum? Enum_InvoiceReserveBilledPriceCalculationId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceReserveFixedPriceCalculationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceReserveFixedPriceCalculationEnum? Enum_InvoiceReserveFixedPriceCalculationId { get; set; } + + /// + /// Reference to Address (directly updateable through Address) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + /// + /// Reference to Contact (directly updateable through Default_Contact) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ContactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ContactId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressDto Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public ContactDto Default_Contact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contacts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Contacts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipants")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentParticipants { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentProductAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentProductAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAssignments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentGetDefaultsParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentGetDefaultsResult + { + + [System.Text.Json.Serialization.JsonPropertyName("default_ServiceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ServiceAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AssignmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_InvoiceTemplateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_CasehandlerEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_CasehandlerEmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_AddressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_ContactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ContactId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceReserveFixedPriceCalculationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceReserveFixedPriceCalculationEnum? Enum_InvoiceReserveFixedPriceCalculationId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceReserveBilledPriceCalculationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceReserveBilledPriceCalculationEnum? Enum_InvoiceReserveBilledPriceCalculationId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_CoverageRateFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Default_CoverageRateFixedPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_CoverageRateNotFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Default_CoverageRateNotFixedPrice { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentGetErrorCountParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentGetErrorCountResult + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("documentCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DocumentCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("appointmentCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AppointmentCount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("participantCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParticipantCount { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentInvoiceReserveAdjustmentParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceReserveAdjustmentAmount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? InvoiceReserveAdjustmentAmount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceReserveAdjustmentComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceReserveAdjustmentComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentMOMDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentMOMId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentMOMId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Reference to Product + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// Product number for matching various products with original product number as part of their name. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("selected")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Selected { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("selected_UserManual")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Selected_UserManual { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentMOMUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentMOMId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentMOMId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentParticipantDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentParticipantId { get; set; } + + /// + /// External ID corresponding to AssignmentParticipantId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentParticipantIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ParticipantStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ParticipantStatusEnum? Enum_ParticipantStatusId { get; set; } + + /// + /// Reference to Assignment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentParticipants")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAssignmentParticipants { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentParticipantGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentParticipantGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentParticipantId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentParticipantUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentParticipantId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentParticipantIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentParticipants")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAssignmentParticipants { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentProductAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentProductAgreementId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priority")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Priority { get; set; } + + /// + /// Reference to ProductAgreement + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Assignment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentProductAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum AssignmentProgressEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotStarted")] + NotStarted = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"WorkOrderWritten")] + WorkOrderWritten = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"SentToHpc")] + SentToHpc = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"TimeMatRegistered")] + TimeMatRegistered = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"InvoiceRegistered")] + InvoiceRegistered = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"PartiallyInvoiced")] + PartiallyInvoiced = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"PartiallyInvoicedNewRegister")] + PartiallyInvoicedNewRegister = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"PartiallyInvoicedInvoiceRegistered")] + PartiallyInvoicedInvoiceRegistered = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"Completed")] + Completed = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentProjectReportParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("projectReportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentProjectReportResult + { + + [System.Text.Json.Serialization.JsonPropertyName("id")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Id { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectReportDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ProjectReportDetailTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Enum_ProjectReportDetailTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("reportNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ReportNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("reportText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ReportText { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sumTotal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SumTotal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sumPeriod")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SumPeriod { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sumBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SumBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sumCurrentYear")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SumCurrentYear { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("difference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Difference { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("differencePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? DifferencePercent { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentReportDimensionSummaryParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentReportDimensionSummaryResult + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionDescription { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceHours")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ServiceHours { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costService")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostService { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costProduct")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostProduct { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costOther")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostOther { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("totalCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("totalInvoiced")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalInvoiced { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("coverage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Coverage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("coveragePercentage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CoveragePercentage { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentReportMonthlySummaryParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId_From")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId_From { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId_To")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId_To { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentReportMonthlySummaryResult + { + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("periodName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PeriodName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("totalCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costService")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostService { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costProduct")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostProduct { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costOther")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostOther { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceHours")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ServiceHours { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("totalInvoiced")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalInvoiced { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("runningTotalCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? RunningTotalCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("runningTotalInvoiced")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? RunningTotalInvoiced { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("coverage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Coverage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("coveragePercentage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CoveragePercentage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoicingSum")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? InvoicingSum { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costProductsBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostProductsBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costServiceBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostServiceBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costOtherBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostOtherBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("incomeProductsBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? IncomeProductsBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("incomeServiceBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? IncomeServiceBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("incomeOtherBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? IncomeOtherBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceSpentBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ServiceSpentBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("accumulatedServiceSpentBudget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AccumulatedServiceSpentBudget { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("accumulatedServiceHours")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AccumulatedServiceHours { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentResetHistoricParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentServiceDto + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum AssignmentStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotStarted")] + NotStarted = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"InProgress")] + InProgress = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Expired")] + Expired = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Completed")] + Completed = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum AssignmentTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Normal")] + Normal = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Service")] + Service = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Internal")] + Internal = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AssignmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressUpsertResultDto Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public ContactUpsertResultDto Default_Contact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contacts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Contacts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipants")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentParticipants { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentProductAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentProductAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAssignments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_AttachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public AttachmentCategoryEnum? Enum_AttachmentCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum AttachmentCategoryEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Custom")] + Custom = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"MOM")] + MOM = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Tender")] + Tender = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentDownloadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// Reference to AttachmentCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + /// + /// Type: string? (Max: 1024) + /// + + [System.Text.Json.Serialization.JsonPropertyName("azureBlobId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AzureBlobId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 1024) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 64) + /// + + [System.Text.Json.Serialization.JsonPropertyName("fileChecksum")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileChecksum { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 250) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + /// + /// Reference to Product + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + /// + /// Reference to ExternalSystem + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sourceExternalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SourceExternalSystemId { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sourceType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceType { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("uri")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Uri { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("useCommonBlobStore")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseCommonBlobStore { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_IndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public IndustryTypeEnum? Enum_IndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_MOM_TypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public MOM_TypeEnum? Enum_MOM_TypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAttachments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentSasResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sasToken")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SasToken { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("blobUri")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BlobUri { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("blobId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BlobId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("firstTimePrepare")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? FirstTimePrepare { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contentType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ContentType { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentUploadByIdDto + { + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List AssignmentAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemAttachments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class B64FileResult + { + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("b64Content")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string B64Content { get; set; } + + } + + /// + /// Boligmappa uploads + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BoligmappaAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("boligmappaAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BoligmappaAttachmentId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("boligmappaFileId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BoligmappaFileId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("boligmappaNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BoligmappaNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("uploadedByBmUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UploadedByBmUserId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("uploadedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? UploadedUTC { get; set; } + + /// + /// Reference to Attachment (directly updateable through Attachment) + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AttachmentDto Attachment { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BoligmappaAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("boligmappaAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BoligmappaAttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AttachmentUpsertResultDto Attachment { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum BoligmappaIndustryTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Undefined")] + Undefined = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Electrician")] + Electrician = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Plumber")] + Plumber = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"AdvisingEngineer")] + AdvisingEngineer = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Carpenter")] + Carpenter = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Painter")] + Painter = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Mason")] + Mason = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Tinsmith")] + Tinsmith = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"Contractor")] + Contractor = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"Appraisal")] + Appraisal = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"RealEstateAgent")] + RealEstateAgent = 10, + + [System.Runtime.Serialization.EnumMember(Value = @"Insurance")] + Insurance = 11, + + [System.Runtime.Serialization.EnumMember(Value = @"Architect")] + Architect = 12, + + [System.Runtime.Serialization.EnumMember(Value = @"HousingProducer")] + HousingProducer = 13, + + [System.Runtime.Serialization.EnumMember(Value = @"Builder")] + Builder = 14, + + [System.Runtime.Serialization.EnumMember(Value = @"LandscapingGardener")] + LandscapingGardener = 15, + + [System.Runtime.Serialization.EnumMember(Value = @"Ventilation")] + Ventilation = 16, + + [System.Runtime.Serialization.EnumMember(Value = @"Government")] + Government = 17, + + [System.Runtime.Serialization.EnumMember(Value = @"LocalElectricityAuthority")] + LocalElectricityAuthority = 18, + + [System.Runtime.Serialization.EnumMember(Value = @"MachineContractor")] + MachineContractor = 19, + + [System.Runtime.Serialization.EnumMember(Value = @"FireAndChimneysweep")] + FireAndChimneysweep = 20, + + [System.Runtime.Serialization.EnumMember(Value = @"IntegrationPartner")] + IntegrationPartner = 21, + + [System.Runtime.Serialization.EnumMember(Value = @"Supplier")] + Supplier = 22, + + [System.Runtime.Serialization.EnumMember(Value = @"Producer")] + Producer = 23, + + [System.Runtime.Serialization.EnumMember(Value = @"RoofContractor")] + RoofContractor = 24, + + [System.Runtime.Serialization.EnumMember(Value = @"MachineContractor2")] + MachineContractor2 = 25, + + [System.Runtime.Serialization.EnumMember(Value = @"Kitchen")] + Kitchen = 26, + + [System.Runtime.Serialization.EnumMember(Value = @"Stairs")] + Stairs = 27, + + [System.Runtime.Serialization.EnumMember(Value = @"Ventilation2")] + Ventilation2 = 28, + + [System.Runtime.Serialization.EnumMember(Value = @"Tinsmith2")] + Tinsmith2 = 29, + + [System.Runtime.Serialization.EnumMember(Value = @"BuildingGoodsStore")] + BuildingGoodsStore = 30, + + [System.Runtime.Serialization.EnumMember(Value = @"Painter2")] + Painter2 = 31, + + [System.Runtime.Serialization.EnumMember(Value = @"TelecomInstaller")] + TelecomInstaller = 32, + + [System.Runtime.Serialization.EnumMember(Value = @"SunShading")] + SunShading = 33, + + [System.Runtime.Serialization.EnumMember(Value = @"AlarmsSecurity")] + AlarmsSecurity = 34, + + [System.Runtime.Serialization.EnumMember(Value = @"Banking")] + Banking = 35, + + [System.Runtime.Serialization.EnumMember(Value = @"HeatPump")] + HeatPump = 36, + + [System.Runtime.Serialization.EnumMember(Value = @"Novap")] + Novap = 37, + + [System.Runtime.Serialization.EnumMember(Value = @"Glazier")] + Glazier = 38, + + [System.Runtime.Serialization.EnumMember(Value = @"FireSecurity")] + FireSecurity = 39, + + [System.Runtime.Serialization.EnumMember(Value = @"Furnishings")] + Furnishings = 40, + + [System.Runtime.Serialization.EnumMember(Value = @"Fencing")] + Fencing = 41, + + [System.Runtime.Serialization.EnumMember(Value = @"SeaContracting")] + SeaContracting = 42, + + [System.Runtime.Serialization.EnumMember(Value = @"Gates")] + Gates = 43, + + [System.Runtime.Serialization.EnumMember(Value = @"StationaryExtinguishers")] + StationaryExtinguishers = 44, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetId { get; set; } + + /// + /// External ID corresponding to BudgetId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to BudgetScenarioId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetScenarioIdExternal { get; set; } + + /// + /// External ID corresponding to FromProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("fromProjectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FromProjectPeriodIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// External ID corresponding to ToProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("toProjectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ToProjectPeriodIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Reference to BudgetScenario + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetScenarioId { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to ProjectPeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fromProjectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromProjectPeriodId { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to ProjectPeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("toProjectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ToProjectPeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgets")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgets { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLineId { get; set; } + + /// + /// External ID corresponding to BudgetLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLineIdExternal { get; set; } + + /// + /// External ID corresponding to BudgetId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// Reference to Budget + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetValue")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? BudgetValue { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to WageCodeReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List BudgetLinePeriods { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgetLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetLinePeriodDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLinePeriodId { get; set; } + + /// + /// External ID corresponding to BudgetLinePeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLinePeriodIdExternal { get; set; } + + /// + /// External ID corresponding to BudgetLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLineIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetValue")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? BudgetValue { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to ProjectPeriod + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to BudgetLine + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetLinePeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgetLinePeriods { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetLinePeriodUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLinePeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLinePeriodIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetLinePeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgetLinePeriods { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List BudgetLinePeriods { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgetLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetScenarioDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetScenarioId { get; set; } + + /// + /// External ID corresponding to BudgetScenarioId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetScenarioIdExternal { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isDefault")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsDefault { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetScenarios")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgetScenarios { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetScenarioUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetScenarioId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetScenarioIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetScenarios")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgetScenarios { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class BudgetUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgets")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemBudgets { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CalculatePriceForProductPickerDetailDto + { + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CalculatePriceForProductPickerDto + { + + [System.Text.Json.Serialization.JsonPropertyName("details")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Details { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CalculatePriceForProductPickerResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isVarious")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsVarious { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("listPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CustomerPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_CostPriceSourceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public CostPriceSourceEnum? Enum_CostPriceSourceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Client + { + + [System.Text.Json.Serialization.JsonPropertyName("clientId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ClientId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ClientLevelEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"None")] + None = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Client")] + Client = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Corporate")] + Corporate = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Global")] + Global = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"System")] + System = 4, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum CommandEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"SetInvoiceLineRule")] + SetInvoiceLineRule = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContactDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + /// + /// External ID corresponding to ContactId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("contactIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ContactIdExternal { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("email")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Email { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceSendAttachment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceSendAttachment { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceSendCopy")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceSendCopy { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Mobile { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name2 { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("parentContactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParentContactId { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phone")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Phone { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("title")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Title { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("preferred_Enum_MessageChannelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public MessageChannelEnum? Preferred_Enum_MessageChannelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemContacts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemContacts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContactGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContactGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + } + + /// + /// Incoming and outgoing messages to contacts, typically through SMS or similar message channels. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContactMessageDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("contactMessageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactMessageId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to ContactId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("contactIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ContactIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to Contact + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("externalMessageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalMessageId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("inboundReadByUserUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? InboundReadByUserUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("inboundReceivedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? InboundReceivedUTC { get; set; } + + /// + /// Should only be set on create operations, and will cause an error if any attempt is made to set this value during an update. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isInbound")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInbound { get; set; } + + /// + /// Type: Guid? + /// + + [System.Text.Json.Serialization.JsonPropertyName("messageGroup")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Guid? MessageGroup { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 1024) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("messageText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string MessageText { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Mobile { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("outboundDeliveredUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? OutboundDeliveredUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("outboundReadByContactUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? OutboundReadByContactUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("outboundSendWaitUntilUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? OutboundSendWaitUntilUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("outboundSentUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? OutboundSentUTC { get; set; } + + /// + /// Type: short? + /// + + [System.Text.Json.Serialization.JsonPropertyName("segmentCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SegmentCount { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sendTryCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SendTryCount { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to User + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_MessageChannelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public MessageChannelEnum? Enum_MessageChannelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_MessageDeliveryStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public MessageDeliveryStatusEnum? Enum_MessageDeliveryStatusId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContactMessageUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contactMessageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactMessageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContactUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contactIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ContactIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemContacts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemContacts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ContractTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Billed")] + Billed = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Contract")] + Contract = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"ChangeMessage")] + ChangeMessage = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Return")] + Return = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum CostPriceSourceEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"SupplierInvoice")] + SupplierInvoice = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"HandheldDevice")] + HandheldDevice = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"ManualInput")] + ManualInput = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"StockAvgUpdOnAdd")] + StockAvgUpdOnAdd = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"StockFIFO")] + StockFIFO = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductCatalogue")] + ProductCatalogue = 6, + + } + + /// + /// https://countrycode.org/ shows some possible values. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CountryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
__When creating records:__ ___Mandatory___ + ///
Type: string (Max: 2) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CountryId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 10) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phonePrefix")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PhonePrefix { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CountryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("countryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CountryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CreateCreditNoteCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CreateInvoiceCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CreateUserCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("userId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("firstName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FirstName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("lastName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LastName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("defaultLanguage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DefaultLanguage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("email")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Email { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("secondaryEmail")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SecondaryEmail { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isClientAdmin")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsClientAdmin { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isInactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInactive { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isPayrollUser")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsPayrollUser { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sendEmail")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SendEmail { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enableTwoFactor")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? EnableTwoFactor { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("emailConfirmation")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? EmailConfirmation { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("clients")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Clients { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CreateUserData + { + + [System.Text.Json.Serialization.JsonPropertyName("id")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Id { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomDimensionDto + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isInvoiceable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInvoiceable { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_DimensionLevelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Enum_DimensionLevelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useOnProductNoteLine")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOnProductNoteLine { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useOnService")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOnService { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// Active field recursively controls dimension use in context of assignment/project + ///
When passing true value it is required for assignmentId or projectId to be present + ///
__When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("active")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Active { get; set; } + + /// + /// Id of assignment using dimension + ///
It is not allowed for both projectId and assignmentId to be present on the same dto + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Invoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionIndex")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionIndex { get; set; } + + /// + /// Id of project using dimension + ///
It is not allowed for both projectId and assignmentId to be present on the same dto + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValues")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List DimensionValues { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomDimensionValueDto + { + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("parentDimensionValueIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ParentDimensionValueIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("selectable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Selectable { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("parentDimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParentDimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? FixedPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("startDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateTimeUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("endDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateTimeUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("completed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Completed { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceText { get; set; } + + /// + /// Active field recursively controls dimension value use (current level and its children) in context of assignment/project + ///
When passing true it's required for assignmentId or projectId to be present on top level dimension dto + ///
__When creating records:__ ___Default value = true___ + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("active")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Active { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomInvoiceLineDto + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Customer + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to Default_AssignmentCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_AssignmentCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_InvoiceTemplateIdExternal { get; set; } + + /// + /// External ID corresponding to Default_ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to Invoice_CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoice_CustomerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Invoice_CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to PaymentTermId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("bankAccountNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BankAccountNumber { get; set; } + + /// + /// Type: string? (Max: 1024) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to Country + ///
Type: string? (Max: 2) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CountryId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("creditLimit")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CreditLimit { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerNumber { get; set; } + + /// + /// Reference to AssignmentCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AssignmentCategoryId { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_InvoiceTemplateId { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ProductAgreementId { get; set; } + + /// + /// Type: string? (Max: 150) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("email")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Email { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fax")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Fax { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("inactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Inactive { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_CustomerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Invoice_CustomerId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceConsolidate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceConsolidate { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceElectronic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceElectronic { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceElectronicEmail")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceElectronicEmail { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceElectronicTarget")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceElectronicTarget { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceReminder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceReminder { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceVAT")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceVAT { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Mobile { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mobile2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Mobile2 { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name2 { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("organizationNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string OrganizationNumber { get; set; } + + /// + /// Reference to PaymentTerm + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phone")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Phone { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("private")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Private { get; set; } + + /// + /// Reference to ServiceAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("timeSheetAttachmentsNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TimeSheetAttachmentsNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_DebtCollectionStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public DebtCollectionStatusEnum? Enum_DebtCollectionStatusId { get; set; } + + /// + /// Reference to Address (directly updateable through Default_Address) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_AddressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AddressId { get; set; } + + /// + /// Reference to Contact (directly updateable through Default_Contact) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ContactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ContactId { get; set; } + + /// + /// Reference to Address (directly updateable through Invoice_Address) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_AddressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Invoice_AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressDto Default_Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice_Address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressDto Invoice_Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public ContactDto Default_Contact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Addresses { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List CustomerAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contacts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Contacts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerProductAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List CustomerProductAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemCustomers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemCustomers { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerProductAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerProductAgreementId { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priority")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Priority { get; set; } + + /// + /// Reference to ProductAgreement + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Customer + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerProductAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class CustomerUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressUpsertResultDto Default_Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice_Address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressUpsertResultDto Invoice_Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public ContactUpsertResultDto Default_Contact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Addresses { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List CustomerAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contacts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Contacts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerProductAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List CustomerProductAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemCustomers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemCustomers { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DailyMaintenanceRequestDto + { + + [System.Text.Json.Serialization.JsonPropertyName("mode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Mode { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DailyMaintenanceResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("message")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Message { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DashboardCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("isGrouped")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsGrouped { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("parameterized")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Parameterized { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("widgets")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Widgets { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("filters")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Filters { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DashboardResult + { + + [System.Text.Json.Serialization.JsonPropertyName("widgets")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Widgets { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("debug")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Debug { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DataValue + { + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public object Value { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("type")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Type { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("state")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? State { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("link")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Link { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("group")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Group { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("items")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Items { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DebtCollectionStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotInUse")] + NotInUse = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Invoices")] + Invoices = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Customer")] + Customer = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DeleteInvoiceLineCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DeleteOldHistoryRequestDto + { + + [System.Text.Json.Serialization.JsonPropertyName("deleteOlderThan")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? DeleteOlderThan { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DeleteOldHistoryResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("message")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Message { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DepartmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// Type: short? + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentNumber { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("inactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Inactive { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("marginMinPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? MarginMinPercent { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + /// + /// Reference to ServiceAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Address (directly updateable through Address) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressDto Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDepartments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StorageDepartments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DepartmentGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DepartmentGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DepartmentPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("departmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DepartmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressUpsertResultDto Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDepartments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StorageDepartments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionCopyParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("copyFromDimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CopyFromDimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isInvoiceable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInvoiceable { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useOnService")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOnService { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useOnProductNoteLine")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOnProductNoteLine { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionCopyResult + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DimensionFilter + { + + [System.Runtime.Serialization.EnumMember(Value = @"Active")] + Active = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Global")] + Global = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Project")] + Project = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Assignment")] + Assignment = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionForEntityResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("active")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Active { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isInvoiceable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInvoiceable { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useOnProductNoteLine")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOnProductNoteLine { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useOnService")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOnService { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Invoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_DimensionLevelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public DimensionLevelEnum? Enum_DimensionLevelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_CreatedDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? Sys_CreatedDateUTC { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DimensionLevelEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Global")] + Global = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Project")] + Project = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Assignment")] + Assignment = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValues")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List DimensionValues { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDimensions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionUseDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionUseId { get; set; } + + /// + /// External ID corresponding to DimensionUseId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionUseIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionUses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDimensionUses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionUseUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionUseId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionUseIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionUses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDimensionUses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueAgGridResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("parentDimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParentDimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("selectable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Selectable { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_CreatedDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? Sys_CreatedDateUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("treePath")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List TreePath { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueForEntityResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_DimensionLevelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public DimensionLevelEnum? Enum_DimensionLevelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("active")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Active { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("selectable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Selectable { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? FixedPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_CreatedDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? Sys_CreatedDateUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("startDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateTimeUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("endDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateTimeUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceText { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("completed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Completed { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("treePath")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List TreePath { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueGetNotSyncedAssignmentDimensionParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueGetNotSyncedAssignmentDimensionResult + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionValues")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDimensionValues { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueUseDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueUseId { get; set; } + + /// + /// External ID corresponding to DimensionValueUseId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueUseIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionValueUses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDimensionValueUses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DimensionValueUseUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueUseId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueUseIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionValueUses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemDimensionValueUses { get; set; } + + } + + /// + /// Products may change their discount groups over time. Old purchase agreements may therefore be invalid after such a change. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DiscountGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("discountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DiscountGroupId { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("discountGroupCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DiscountGroupCode { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DiscountGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("discountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DiscountGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to JobCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approveWageRequired")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ApproveWageRequired { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dateOfBirth")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? DateOfBirth { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("emailPrivate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmailPrivate { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("emailWork")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmailWork { get; set; } + + /// + /// Reference to EmployeeInvoiceCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeNumber { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDate { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("firstName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FirstName { get; set; } + + /// + /// The employee has a mobile device assigned. Typically used when integrating with SpeedyCraft. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("hasMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? HasMobileDevice { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("hoursPerWeek")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? HoursPerWeek { get; set; } + + /// + /// Type: string? (Max: 4000) + /// + + [System.Text.Json.Serialization.JsonPropertyName("imageUrl")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ImageUrl { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isCaseHandler")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsCaseHandler { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isHired")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsHired { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryEndDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? JobCategoryEndDate { get; set; } + + /// + /// Reference to JobCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryStartDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? JobCategoryStartDate { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? JobPercent { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LastName { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phoneMobile")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PhoneMobile { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phonePrivate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PhonePrivate { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phoneWork")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PhoneWork { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDate { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_EmployeeStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public EmployeeStatusEnum? Enum_EmployeeStatusId { get; set; } + + /// + /// Reference to Address (directly updateable through Default_Address) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_AddressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressDto Default_Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employee_Competencies")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Employee_Competencies { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Addresses { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List EmployeeAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemEmployees")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemEmployees { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeInvoiceCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + /// + /// External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemEmployeeInvoiceCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemEmployeeInvoiceCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeInvoiceCategoryGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeInvoiceCategoryGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeInvoiceCategoryPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeInvoiceCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemEmployeeInvoiceCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemEmployeeInvoiceCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum EmployeeStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Regular")] + Regular = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Unpaid")] + Unpaid = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"TemporarilyLaidOff")] + TemporarilyLaidOff = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Ended")] + Ended = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"TemporarilyStopped")] + TemporarilyStopped = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class EmployeeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_Address")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public AddressUpsertResultDto Default_Address { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employee_Competencies")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Employee_Competencies { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Addresses { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List EmployeeAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemEmployees")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemEmployees { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Employee_CompetencyDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employee_CompetencyId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Employee_CompetencyId { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// Reference to Competency + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("competencyId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CompetencyId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Employee_CompetencyUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employee_CompetencyId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Employee_CompetencyId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum EntityNameForDimension + { + + [System.Runtime.Serialization.EnumMember(Value = @"Service")] + Service = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductNoteLine")] + ProductNoteLine = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Invoice")] + Invoice = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExportPayrollFileDto + { + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("payrollFormat")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PayrollFormatEnum? PayrollFormat { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("separatorChar")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SeparatorChar { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("includeAssignmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IncludeAssignmentNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("includeProjectNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IncludeProjectNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textEncoding")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public TextEncodingEnum? TextEncoding { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("includeFormatInfoInFileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IncludeFormatInfoInFileName { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAddressDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAddressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemAddressId { get; set; } + + /// + /// External ID corresponding to AddressId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("addressIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AddressIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Address + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAddressUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addressId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AddressId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addressIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AddressIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAppointmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAppointmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemAppointmentId { get; set; } + + /// + /// External ID corresponding to AppointmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("appointmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AppointmentIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Appointment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("appointmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AppointmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAppointmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("appointmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AppointmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("appointmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AppointmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAssignmentCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemAssignmentCategoryId { get; set; } + + /// + /// External ID corresponding to AssignmentCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentCategoryIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to AssignmentCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAssignmentCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAssignmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemAssignmentId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAssignmentParticipantDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAssignmentParticipantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemAssignmentParticipantId { get; set; } + + /// + /// External ID corresponding to AssignmentParticipantId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentParticipantIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to AssignmentParticipant + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentParticipantId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAssignmentParticipantUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentParticipantId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentParticipantIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentParticipantIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAssignmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Attachment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemBudgetId { get; set; } + + /// + /// External ID corresponding to BudgetId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Budget + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemBudgetLineId { get; set; } + + /// + /// External ID corresponding to BudgetLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLineIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to BudgetLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetLinePeriodDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetLinePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemBudgetLinePeriodId { get; set; } + + /// + /// External ID corresponding to BudgetLinePeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLinePeriodIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to BudgetLinePeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLinePeriodId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetLinePeriodUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLinePeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLinePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLinePeriodIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetScenarioDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemBudgetScenarioId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemBudgetScenarioId { get; set; } + + /// + /// External ID corresponding to BudgetScenarioId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetScenarioIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to BudgetScenario + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetScenarioId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetScenarioUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetScenarioId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetScenarioIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetScenarioIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemBudgetUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? BudgetId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("budgetIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string BudgetIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemCheckAnySyncNeededParameters + { + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemCheckAnySyncNeededResult + { + + [System.Text.Json.Serialization.JsonPropertyName("syncNeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncNeeded { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemCheckSyncNeededParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalSystemName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncAllRequest_Name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncAllRequest_Name { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemCheckSyncNeededResult + { + + [System.Text.Json.Serialization.JsonPropertyName("syncNeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncNeeded { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemConfigureSpeedyCraftParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("tenantId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TenantId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemContactDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemContactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemContactId { get; set; } + + /// + /// External ID corresponding to ContactId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("contactIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ContactIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Contact + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemContactUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contactIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ContactIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemCustomerDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemCustomerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemCustomerId { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemCustomerUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDepartmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDepartmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemDepartmentId { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDepartmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDimensionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDimensionUseDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemDimensionUseId { get; set; } + + /// + /// External ID corresponding to DimensionUseId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionUseIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to DimensionUse + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionUseId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDimensionUseUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionUseId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionUseIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDimensionValueUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDimensionValueUseDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemDimensionValueUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemDimensionValueUseId { get; set; } + + /// + /// External ID corresponding to DimensionValueUseId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueUseIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to DimensionValueUse + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueUseId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDimensionValueUseUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueUseId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueUseIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueUseIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + /// + /// External systems such as payroll, ERP or handheld. Example: Visma Payroll, SpeedyCraft + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Type: string? + /// + + [System.Text.Json.Serialization.JsonPropertyName("integrationConfig")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IntegrationConfig { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemExtraDatas")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemExtraDatas { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemEmployeeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemEmployeeId { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemEmployeeInvoiceCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemEmployeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemEmployeeInvoiceCategoryId { get; set; } + + /// + /// External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to EmployeeInvoiceCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemEmployeeInvoiceCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemEmployeeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + /// + /// Key value list with data for external systems. Primarily used by integrations. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemExtraDataDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemExtraDataId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemExtraDataId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("key")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Key { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? + /// + + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Value { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemExtraDataUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemExtraDataId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemExtraDataId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemGetOrCreateExternalSystemIDParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("systemName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SystemName { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemGetOrCreateExternalSystemIDResult + { + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemGetSyncStatusAllParameters + { + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemGetSyncStatusAllResult + { + + [System.Text.Json.Serialization.JsonPropertyName("syncName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncType { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncIsRunning")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncIsRunning { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncRequestedDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? SyncRequestedDateUTC { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemGetSyncStatusParameters + { + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemGetSyncStatusResult + { + + [System.Text.Json.Serialization.JsonPropertyName("syncName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncType { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncIsRunning")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncIsRunning { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncRequestedDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? SyncRequestedDateUTC { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemIndustryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemIndustryTypeId { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to IndustryType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemIndustryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemInvoiceId { get; set; } + + /// + /// External ID corresponding to InvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Invoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemInvoiceLineId { get; set; } + + /// + /// External ID corresponding to InvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to InvoiceLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceLineRuleDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemInvoiceLineRuleId { get; set; } + + /// + /// External ID corresponding to InvoiceLineRuleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to InvoiceLineRule + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceLineRuleUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceTemplateDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceTemplateDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemInvoiceTemplateDetailId { get; set; } + + /// + /// External ID corresponding to InvoiceTemplateDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateDetailIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to InvoiceTemplateDetail + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateDetailId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceTemplateDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateDetailIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceTemplateDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemInvoiceTemplateId { get; set; } + + /// + /// External ID corresponding to InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceTemplateUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemInvoiceUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemJobCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemJobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemJobCategoryId { get; set; } + + /// + /// External ID corresponding to JobCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to JobCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemJobCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemLedgerAccountDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemLedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemLedgerAccountId { get; set; } + + /// + /// External ID corresponding to LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LedgerAccountIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemLedgerAccountUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LedgerAccountIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemPaymentTermDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemPaymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemPaymentTermId { get; set; } + + /// + /// External ID corresponding to PaymentTermId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to PaymentTerm + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemPaymentTermUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemPermissionDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemPermissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemPermissionId { get; set; } + + /// + /// External ID corresponding to PermissionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("permissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PermissionIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Permission + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("permissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PermissionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemPermissionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("permissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PermissionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("permissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PermissionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductAgreementDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProductAgreementDetailId { get; set; } + + /// + /// External ID corresponding to ProductAgreementDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementDetailIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProductAgreementDetail + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementDetailId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductAgreementDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementDetailIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProductAgreementId { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProductId { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Product + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductNoteDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProductNoteId { get; set; } + + /// + /// External ID corresponding to ProductNoteId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProductNote + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductNoteLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProductNoteLineId { get; set; } + + /// + /// External ID corresponding to ProductNoteLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteLineIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProductNoteLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductNoteLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductNoteUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductSupplierIndustryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProductSupplierIndustryTypeId { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductSupplierIndustryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProductUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectAccountDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProjectAccountId { get; set; } + + /// + /// External ID corresponding to ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectAccountUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProjectId { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProjectGroupId { get; set; } + + /// + /// External ID corresponding to ProjectGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectGroupIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProjectGroup + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectGroupId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectGroupIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectPeriodDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProjectPeriodId { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProjectPeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectPeriodUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemProjectTypeId { get; set; } + + /// + /// External ID corresponding to ProjectTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectTypeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ProjectType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemProjectUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemRequestSyncParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("syncType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncType { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemResetSyncFlagParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalSystemName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncAllRequest_Name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncAllRequest_Name { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemRoleDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemRoleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemRoleId { get; set; } + + /// + /// External ID corresponding to RoleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("roleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RoleIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Role + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemRolePermissionDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemRolePermissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemRolePermissionId { get; set; } + + /// + /// External ID corresponding to RolePermissionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RolePermissionIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to RolePermission + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RolePermissionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemRolePermissionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RolePermissionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RolePermissionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemRoleUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("roleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RoleIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemServiceAgreementDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemServiceAgreementDetailId { get; set; } + + /// + /// External ID corresponding to ServiceAgreementDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementDetailIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ServiceAgreementDetail + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemServiceAgreementDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementDetailIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemServiceAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemServiceAgreementId { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to ServiceAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemServiceAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemServiceDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemServiceId { get; set; } + + /// + /// External ID corresponding to ServiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Service + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemServiceUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockCountDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockCountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemStockCountId { get; set; } + + /// + /// External ID corresponding to StockCountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockCountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to StockCount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockCountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockCountLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockCountLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemStockCountLineId { get; set; } + + /// + /// External ID corresponding to StockCountLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountLineIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to StockCountLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockCountLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockCountUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemStockId { get; set; } + + /// + /// External ID corresponding to StockId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Stock + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockTransactionDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockTransactionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemStockTransactionId { get; set; } + + /// + /// External ID corresponding to StockTransactionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockTransactionIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to StockTransaction + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockTransactionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockTransactionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockTransactionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockTransactionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStockUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStorageDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemStorageId { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStorageTransferDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStorageTransferId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemStorageTransferId { get; set; } + + /// + /// External ID corresponding to StorageTransferId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageTransferIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageTransferIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to StorageTransfer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageTransferId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageTransferId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStorageTransferUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageTransferId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageTransferId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageTransferIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageTransferIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemStorageUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemSupplierId { get; set; } + + /// + /// External ID corresponding to SupplierId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to Supplier + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierIndustryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemSupplierIndustryTypeId { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierIndustryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierInvoiceDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemSupplierInvoiceId { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to SupplierInvoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierInvoiceLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemSupplierInvoiceLineId { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceLineIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to SupplierInvoiceLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierInvoiceLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierInvoiceUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSupplierUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemSyncAllRequestedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalSystemName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncAllRequestFlags")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncAllRequestFlags { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("syncAllRequest_Name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SyncAllRequest_Name { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemExtraDatas")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemExtraDatas { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemUserRoleDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemUserRoleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemUserRoleId { get; set; } + + /// + /// External ID corresponding to UserRoleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("userRoleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserRoleIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to UserRole + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userRoleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserRoleId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemUserRoleUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userRoleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserRoleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userRoleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserRoleIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemVATRateDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemVATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemVATRateId { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemVATRateUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VatRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VatRateIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageCodeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWageCodeId { get; set; } + + /// + /// External ID corresponding to WageCodeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WageCode + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageCodeReportCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWageCodeReportCategoryId { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WageCodeReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageCodeReportCategoryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWageCodeReportCategoryTypeId { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryTypeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WageCodeReportCategoryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageCodeReportCategoryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryTypeIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageCodeReportCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageCodeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWageGroupId { get; set; } + + /// + /// External ID corresponding to WageGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WageGroup + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWagePeriodDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWagePeriodId { get; set; } + + /// + /// External ID corresponding to WagePeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WagePeriodIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WagePeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWagePeriodUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WagePeriodIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageRateDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWageRateId { get; set; } + + /// + /// External ID corresponding to WageRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WageRate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageRateEmployeeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemWageRateEmployeeId { get; set; } + + /// + /// External ID corresponding to WageRateEmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateEmployeeIdExternal { get; set; } + + /// + /// The entity ID in the external system. Primarily used for syncing entities in integrations. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Time spent on the last successful or unsuccessful data transfer to an external system. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + /// + /// Reference to WageRateEmployee + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateEmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageRateEmployeeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateEmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateEmployeeIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ExternalSystemWageRateUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateIdExternal { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum FileDownloadModeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"AutoDetect")] + AutoDetect = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"LegacyFTP")] + LegacyFTP = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"SFTP")] + SFTP = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"FTPS")] + FTPS = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Filter + { + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public object Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GetAssignmentIdsForChangedAssignmentDimensionUseAggregatesResult + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GetCustomerIdsForChangedCustomerAddressContactAggregatesResult + { + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GetDimensionsMetaDataResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("dimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("columnId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ColumnId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("headerName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string HeaderName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_DimensionLevelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public DimensionLevelEnum? Enum_DimensionLevelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("allowedValues")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary AllowedValues { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GetIntegrationSyncStatusFromCacheRequest + { + + [System.Text.Json.Serialization.JsonPropertyName("integrationName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IntegrationName { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class GetInvoiceResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dueDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? DueDate { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? InvoiceDate { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internalReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalReference { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalReference { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerReference { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermDescription { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wholesalerName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WholesalerName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatFree")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? VatFree { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("updateStorage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateStorage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costToAssignment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CostToAssignment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("overrideWholesaler")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? OverrideWholesaler { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTotal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? InvoiceTotal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("totalCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("coverage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Coverage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("weekNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WeekNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("periodNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PeriodNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Enum_InvoiceStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fixedPriceAmount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? FixedPriceAmount { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice_CustomerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Invoice_CustomerId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice_CustomerName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Invoice_CustomerName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("canEditDates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CanEditDates { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("useDimensions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseDimensions { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentDescription { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachServiceListAsPDF")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AttachServiceListAsPDF { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ImportFileDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("importFileId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ImportFileId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("autoImport")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AutoImport { get; set; } + + /// + /// Type: string? (Max: 255) + /// + + [System.Text.Json.Serialization.JsonPropertyName("azureBlobIdExt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AzureBlobIdExt { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("downloadedDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? DownloadedDateTimeUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("importedDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ImportedDateTimeUTC { get; set; } + + /// + /// Type: string? + /// + + [System.Text.Json.Serialization.JsonPropertyName("importMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ImportMessage { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("localHashCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LocalHashCode { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("remainingDownloadTryCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RemainingDownloadTryCount { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("remainingImportTryCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RemainingImportTryCount { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sourceAutoDeleteAfterImport")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SourceAutoDeleteAfterImport { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sourceDeletedDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? SourceDeletedDateTimeUTC { get; set; } + + /// + /// Type: string? (Max: 255) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sourceFileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceFileName { get; set; } + + /// + /// Type: long? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sourceFileSize")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? SourceFileSize { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sourceHashCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceHashCode { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sourceLastUpdatedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? SourceLastUpdatedUTC { get; set; } + + /// + /// Reference to SupplierIndustryTypeFtpInfo + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeFtpInfoId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeFtpInfoId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ImportFormatId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ImportFormatEnum? Enum_ImportFormatId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ImportStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ImportStatusEnum? Enum_ImportStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ImportTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ImportTypeEnum? Enum_ImportTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ImportFileUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("importFileId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ImportFileId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ImportFormatEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"RsKalk")] + RsKalk = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"BrDahl")] + BrDahl = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Comfort")] + Comfort = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"PrisCon")] + PrisCon = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Nelfo4")] + Nelfo4 = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"BrDahlXml")] + BrDahlXml = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Synergo")] + Synergo = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"Custom")] + Custom = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ImportFrequencyEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Manual")] + Manual = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Month")] + Month = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Week")] + Week = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Day")] + Day = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ImportInvoiceCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ImportInvoiceWithDataCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatFree")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? VatFree { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ImportStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"AwaitingManualApproval")] + AwaitingManualApproval = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ReadyForDownload")] + ReadyForDownload = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"DownloadStarted")] + DownloadStarted = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Downloaded")] + Downloaded = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"ReadyForImport")] + ReadyForImport = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"ImportStarted")] + ImportStarted = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"ImportCompletedOK")] + ImportCompletedOK = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"FailedImport")] + FailedImport = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"FailedDownload")] + FailedDownload = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"FailedTimeout")] + FailedTimeout = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"FailedUnknown")] + FailedUnknown = 10, + + [System.Runtime.Serialization.EnumMember(Value = @"AwaitingProducts")] + AwaitingProducts = 11, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ImportTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"AutoDetect")] + AutoDetect = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductCatalog")] + ProductCatalog = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductAgreement")] + ProductAgreement = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Autofakt")] + Autofakt = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"PurchaseOrder")] + PurchaseOrder = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"PurchaseOrderConfirmation")] + PurchaseOrderConfirmation = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndexRateGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
__When creating records:__ ___Mandatory___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("indexRateGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndexRateGroupId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("indexRate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? IndexRate { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndexRateGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("indexRateGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndexRateGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndustryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: byte? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_BoligmappaIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public BoligmappaIndustryTypeEnum? Enum_BoligmappaIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_IndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public IndustryTypeEnum? Enum_IndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemIndustryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemIndustryTypes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum IndustryTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Undefined")] + Undefined = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Electrician")] + Electrician = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Plumber")] + Plumber = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"AdvisingEngineer")] + AdvisingEngineer = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Carpenter")] + Carpenter = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Painter")] + Painter = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Mason")] + Mason = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Tinsmith")] + Tinsmith = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"Contractor")] + Contractor = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"Appraisal")] + Appraisal = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"RealEstateAgent")] + RealEstateAgent = 10, + + [System.Runtime.Serialization.EnumMember(Value = @"Insurance")] + Insurance = 11, + + [System.Runtime.Serialization.EnumMember(Value = @"Architect")] + Architect = 12, + + [System.Runtime.Serialization.EnumMember(Value = @"HousingProducer")] + HousingProducer = 13, + + [System.Runtime.Serialization.EnumMember(Value = @"Builder")] + Builder = 14, + + [System.Runtime.Serialization.EnumMember(Value = @"LandscapingGardener")] + LandscapingGardener = 15, + + [System.Runtime.Serialization.EnumMember(Value = @"Ventilation")] + Ventilation = 16, + + [System.Runtime.Serialization.EnumMember(Value = @"Government")] + Government = 17, + + [System.Runtime.Serialization.EnumMember(Value = @"LocalElectricityAuthority")] + LocalElectricityAuthority = 18, + + [System.Runtime.Serialization.EnumMember(Value = @"MachineContractor")] + MachineContractor = 19, + + [System.Runtime.Serialization.EnumMember(Value = @"FireAndChimneysweep")] + FireAndChimneysweep = 20, + + [System.Runtime.Serialization.EnumMember(Value = @"RoofContractor")] + RoofContractor = 21, + + [System.Runtime.Serialization.EnumMember(Value = @"HeatPump")] + HeatPump = 22, + + [System.Runtime.Serialization.EnumMember(Value = @"Glazier")] + Glazier = 23, + + [System.Runtime.Serialization.EnumMember(Value = @"FireSecurity")] + FireSecurity = 24, + + [System.Runtime.Serialization.EnumMember(Value = @"Furnishings")] + Furnishings = 25, + + [System.Runtime.Serialization.EnumMember(Value = @"Fencing")] + Fencing = 26, + + [System.Runtime.Serialization.EnumMember(Value = @"SeaContracting")] + SeaContracting = 27, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndustryTypeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndustryTypeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndustryTypePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IndustryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemIndustryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemIndustryTypes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InsertInvoiceLines_SessionDto + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineCode { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineText { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("updateAssignmentCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateAssignmentCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("updateStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateStock { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegratedSystemConfigDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("integratedSystemConfigId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegratedSystemConfigId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("key")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Key { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? + /// + + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Value { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_IntegratedSystemTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public IntegratedSystemTypeEnum? Enum_IntegratedSystemTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegratedSystemConfigUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("integratedSystemConfigId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegratedSystemConfigId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum IntegratedSystemTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaNetErp")] + VismaNetErp = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaPayroll")] + VismaPayroll = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Tripletex")] + Tripletex = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"UniEconomy")] + UniEconomy = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"SpeedyCraft")] + SpeedyCraft = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationGetSyncEventsParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationGetSyncEventsResult + { + + [System.Text.Json.Serialization.JsonPropertyName("syncEventId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SyncEventId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("tableName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TableName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rowId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("createOperation")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CreateOperation { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationRemoveSyncEventsParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("syncEventId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SyncEventId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationSpeedycraftGetSkeletonIdsToSyncParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("tableName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TableName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + } + + /// + /// Contains integration issues for all integrations. + ///
+ ///
Rows inserted into this table will auto-generate corresponding rows in SystemMessage and set Sys_RowStatus on corresponding rows. + ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationStatusDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("integrationStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegrationStatusId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Assignment ID to associate the message with if no more detailed row is available. + ///
Example: Unable to create product note. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Automatically counted times the issue has been registered. + ///
__When creating records:__ ___Default value = 1___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attemptCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttemptCount { get; set; } + + /// + /// Automatically counted down to 0 if the issue is re-registered. + ///
__When creating records:__ ___Default value = 5___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attemptsLeft")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttemptsLeft { get; set; } + + /// + /// Set by the integration if known when setting the IntegrationStatus. + ///
Type: string? (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalEditURL")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalEditURL { get; set; } + + /// + /// (Technical) ID from the integrated system. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Human-readable ID from the external system. Example: SupplierInvoice number. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalIdText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalIdText { get; set; } + + /// + /// Same as TraceID, but for looking up logs in external systems where available. + ///
Type: string? (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalTraceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalTraceId { get; set; } + + /// + /// The referenced field, if known. Example: Email. + ///
Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fieldName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FieldName { get; set; } + + /// + /// Represents a group of IntegrationStatus lines. + ///
+ ///
When auto-deleting IntegrationStatus lines, RowID / RowID2 can be excluded, and GroupID provided instead. All rows matching the GroupID within the given ExternalSystemID, Operation and TableName will be removed. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("groupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string GroupId { get; set; } + + /// + /// Set by the integration if known when setting the IntegrationStatus. If not provided, the API will calculate a relative URL for this where possible during postprocessing. + ///
+ ///
Example: client/a-anonymisert/pages/assignment/17863/information + ///
Type: string? (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internalEditURL")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalEditURL { get; set; } + + /// + /// Human-readable ID from Contracting. Example: Assignment number. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internalIdText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalIdText { get; set; } + + /// + /// The operation performed when the issue was found, for example InvoiceSync. + ///
__When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("operation")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Operation { get; set; } + + /// + /// Raw error message, untranslated. Still safe for users, so does not contain any secrets. + ///
Intended for end-user consumption, so should not contain exception messages etc. + ///
Type: string? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rawMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RawMessage { get; set; } + + /// + /// When set to 1, indicates that a user explicitly wishes to retry the operation. + ///
+ ///
Useful in cases where an automatic retry is not triggered, for example if an error was caused by related data not part of the root aggregate. + ///
+ ///
Example: Assignment sync failing due to something being wrong with a department. Fixing the issue on the department will not necessarily trigger a change on assignments. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("retryRequested")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? RetryRequested { get; set; } + + /// + /// Identifies the entity row. For composite keys, identifies the row together with RowID2. + ///
Type: long? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rowId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowId { get; set; } + + /// + /// Represents the second part of a composite key identifying a row. For tables like AssignmentParticipant, the AssignmentID will be represented by RowID, while RowID2 will represent the EmployeeID. This is implicitly defined by TableName. + ///
Type: long? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rowId2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowId2 { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The name of the table representing the synced entity. Examples: Customer, Invoice. + ///
Type: string? (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("tableName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TableName { get; set; } + + /// + /// Technical error description, intended to help developers, support and similar to identify the ongoing issue. + ///
+ ///
May contain exception messages or similar texts. + ///
Type: string? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("technicalMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TechnicalMessage { get; set; } + + /// + /// Translatable text, corresponding to TextIDs in the Texts database. + ///
Type: string? (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + /// + /// The TraceID is also used in the logs, and can be used by support to find more details on the given issue. + ///
Type: string? (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserComment { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userOk")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UserOk { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationStatusIncomingMoveAndProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationStatusIncomingMoveAndProcessResult + { + + [System.Text.Json.Serialization.JsonPropertyName("totalProcessed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TotalProcessed { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationStatusUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("integrationStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegrationStatusId { get; set; } + + } + + /// + /// Contains integration issues for all integrations. + ///
+ ///
Rows inserted into this table will auto-generate corresponding rows in SystemMessage and set Sys_RowStatus on corresponding rows. + ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationStatus_IncomingDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("integrationStatus_IncomingId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegrationStatus_IncomingId { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Set by the integration if known when setting the IntegrationStatus. + ///
Type: string? (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalEditURL")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalEditURL { get; set; } + + /// + /// (Technical) ID from the integrated system. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Human-readable ID from the external system. Example: SupplierInvoice number. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalIdText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalIdText { get; set; } + + /// + /// Reference to ExternalSystem + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Same as TraceID, but for looking up logs in external systems where available. + ///
Type: string? (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalTraceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalTraceId { get; set; } + + /// + /// The referenced field, if known. Example: Email. + ///
Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fieldName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FieldName { get; set; } + + /// + /// Represents a group of IntegrationStatus lines. + ///
+ ///
When auto-deleting IntegrationStatus lines, RowID / RowID2 can be excluded, and GroupID provided instead. All rows matching the GroupID within the given ExternalSystemID, Operation and TableName will be removed. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("groupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string GroupId { get; set; } + + /// + /// Reference to Integrator + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("integratorId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegratorId { get; set; } + + /// + /// Set by the integration if known when setting the IntegrationStatus. If not provided, the API will calculate a relative URL for this where possible during postprocessing. + ///
+ ///
Example: client/a-anonymisert/pages/assignment/17863/information + ///
Type: string? (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internalEditURL")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalEditURL { get; set; } + + /// + /// Human-readable ID from Contracting. Example: Assignment number. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internalIdText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InternalIdText { get; set; } + + /// + /// The operation performed when the issue was found, for example InvoiceSync. + ///
__When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("operation")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Operation { get; set; } + + /// + /// Raw error message, untranslated. Still safe for users, so does not contain any secrets. + ///
Intended for end-user consumption, so should not contain exception messages etc. + ///
Type: string? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rawMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RawMessage { get; set; } + + /// + /// Identifies the entity row. For composite keys, identifies the row together with RowID2. + ///
Type: long? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rowId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowId { get; set; } + + /// + /// Represents the second part of a composite key identifying a row. For tables like AssignmentParticipant, the AssignmentID will be represented by RowID, while RowID2 will represent the EmployeeID. This is implicitly defined by TableName. + ///
Type: long? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rowId2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? RowId2 { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// The name of the table representing the synced entity. Examples: Customer, Invoice. + ///
Type: string? (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("tableName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TableName { get; set; } + + /// + /// Technical error description, intended to help developers, support and similar to identify the ongoing issue. + ///
+ ///
May contain exception messages or similar texts. + ///
Type: string? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("technicalMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TechnicalMessage { get; set; } + + /// + /// Translatable text, corresponding to TextIDs in the Texts database. + ///
Type: string? (Max: 200) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + /// + /// The TraceID is also used in the logs, and can be used by support to find more details on the given issue. + ///
Type: string? (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("next_Enum_RowStateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Next_Enum_RowStateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class IntegrationStatus_IncomingUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("integrationStatus_IncomingId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IntegrationStatus_IncomingId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Invoice + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceCalculateTotalsParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Guid? SessionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceCalculateTotalsResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTotal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? InvoiceTotal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("totalCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("coverage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Coverage { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceCancelParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceCancelResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + /// + /// External ID corresponding to InvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to DebtorCustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("debtorCustomerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DebtorCustomerIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to ParentInvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("parentInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ParentInvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to PaymentTermId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachServiceListAsPDF")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AttachServiceListAsPDF { get; set; } + + /// + /// Reference to Customer + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("debtorCustomerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DebtorCustomerId { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dueDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? DueDate { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("grossAmount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? GrossAmount { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + /// + /// Obsolete: Currently contains registered date, replaced by RegisteredUTC. + ///
Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? InvoiceDate { get; set; } + + /// + /// Formal invoice date. The invoice number gets set at this time. This is the basis for project period. + ///
Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoicedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? InvoicedUTC { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isCreditNote")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsCreditNote { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isFinalInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsFinalInvoice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("netAmount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? NetAmount { get; set; } + + /// + /// Reference to Invoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("parentInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParentInvoiceId { get; set; } + + /// + /// Reference to PaymentTerm + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + /// + /// The invoice was registered in Contracting.Works. Usually identical to Sys_CreatedDateUTC. + ///
Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("registeredUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredUTC { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("remainingAmount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? RemainingAmount { get; set; } + + /// + /// When the invoice is actually sent to the customer. + ///
Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sentUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? SentUTC { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// The invoice was transferred successfully to the economy system. + ///
Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("transferredUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? TransferredUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATFree")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? VATFree { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceStatusEnum? Enum_InvoiceStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoices")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoices { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List InvoiceAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List InvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceExecuteDimensionInvoiceTemplateParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValues")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValues { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceExecuteDimensionInvoiceTemplateResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceExecuteInvoiceRuleParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("insertAtRowIndex")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InsertAtRowIndex { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("returnResult")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ReturnResult { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("reapplyRule")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ReapplyRule { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoicingDimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoicingDimensionValueId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceExecuteInvoiceRuleResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceExecuteInvoiceTemplateParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceExecuteInvoiceTemplateResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLine + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineCode { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineText { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceLineRuleTypeDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Enum_InvoiceLineRuleTypeDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("combined_InvoiceLineRuleCode_Description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Combined_InvoiceLineRuleCode_Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fieldAttributesByJson")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FieldAttributesByJson { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sourceServiceIds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceServiceIds { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sourceProductNoteLineIds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceProductNoteLineIds { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + /// + /// External ID corresponding to InvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to DimensionValueId_1 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_1External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_2 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_2External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_3 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_3External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_4 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_4External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_5 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_5External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_6 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_6External { get; set; } + + /// + /// External ID corresponding to Income_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Income_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceLineRuleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleIdExternal { get; set; } + + /// + /// External ID corresponding to InvoicingDimensionValueId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoicingDimensionValueIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoicingDimensionValueIdExternal { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// External ID corresponding to ServiceAgreementDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementDetailIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("basisSumPercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? BasisSumPercentInvoice { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_LedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_1 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_2 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_3 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_4 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_5 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_6 { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_LedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + /// + /// Reference to IndustryType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineCode { get; set; } + + /// + /// Reference to InvoiceLineRule + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineText { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoicingDimensionValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoicingDimensionValueId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsFixedPrice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isVarious")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsVarious { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("listPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPrice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceOnly { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + /// + /// Reference to ProjectPeriod + ///
The project period will be auto-filled in based on the parent invoices InvoicedUTC field if it is missing. Special permissions are needed to alter the project period on an existing record. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("registeredDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredDateTimeUTC { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + /// + /// Reference to ServiceAgreementDetail + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SortOrder { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sourceProductNoteLineIds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceProductNoteLineIds { get; set; } + + /// + /// Type: string? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sourceServiceIds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SourceServiceIds { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_AssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_AssignmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_InvoiceNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_InvoiceNumber { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProjectAccountCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProjectAccountCategoryId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProjectPeriod")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProjectPeriod { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("updateAssignmentCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateAssignmentCost { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("updateStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateStock { get; set; } + + /// + /// This field, together with account information, is caculated when the invoice is sent (sendInvoice is called) + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATFree")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? VATFree { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + /// + /// Reference to WageCodeReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceLineTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceLineTypeEnum? Enum_InvoiceLineTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Enum_InvoiceLineRuleTypeDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceLineRuleTypeDetailEnum? Sys_Enum_InvoiceLineRuleTypeDetailId { get; set; } + + /// + /// Reference to Invoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLinePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineRuleDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + /// + /// External ID corresponding to InvoiceLineRuleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Income_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Sale_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sale_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Sale_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sale_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("externalInvoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalInvoiceLineCode { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleCode { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineTextEditable")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceLineTextEditable { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("notUseOnFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? NotUseOnFixedPrice { get; set; } + + /// + /// When set, the create invoice lines will get this code instead of ILR_ + InvoiceLineRuleCode. This allows for example setting hour lines to a specific product, thus emulating the old behaviour where hours were invoiced on product -1000. + ///
Type: string? (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("override_InvoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Override_InvoiceLineCode { get; set; } + + /// + /// Type: string? (Max: 200) + /// + + [System.Text.Json.Serialization.JsonPropertyName("override_InvoiceLineText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Override_InvoiceLineText { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceOnly { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATRequired_LedgerAccountId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + /// + /// Reference to WageCodeReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageType_CarExpenses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WageType_CarExpenses { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageType_Diet")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WageType_Diet { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageType_OrdinaryWage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WageType_OrdinaryWage { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageType_Overtime")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WageType_Overtime { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageType_TravelExpenses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WageType_TravelExpenses { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageType_VariousExtra")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WageType_VariousExtra { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceLineRuleTypeDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceLineRuleTypeDetailEnum? Enum_InvoiceLineRuleTypeDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceLineRuleTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceLineRuleTypeEnum? Enum_InvoiceLineRuleTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceLineRules")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceLineRules { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineRuleGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineRuleGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineRulePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleCode { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceLineRuleTypeDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceLineRuleTypeDetailEnum? Enum_InvoiceLineRuleTypeDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceLineRuleTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceLineRuleTypeEnum? Enum_InvoiceLineRuleTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoiceLineRuleTypeDetailEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ServicePerWageCode")] + ServicePerWageCode = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"ServicePerInvoiceCategory")] + ServicePerInvoiceCategory = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"ServicePerInvoiceCategoryAndWageCode")] + ServicePerInvoiceCategoryAndWageCode = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"ServicePerRate")] + ServicePerRate = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"ServiceTotal")] + ServiceTotal = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"ServicePerEmployee")] + ServicePerEmployee = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialProductNoteDetail")] + MaterialProductNoteDetail = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialProductNote")] + MaterialProductNote = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialFromInvoiceAppendix")] + MaterialFromInvoiceAppendix = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialProductNoteWithDetails")] + MaterialProductNoteWithDetails = 10, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialProductNoteDetailLastPriceOnProduct")] + MaterialProductNoteDetailLastPriceOnProduct = 11, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialProductNoteLastPriceOnProduct")] + MaterialProductNoteLastPriceOnProduct = 12, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialFromInvoiceAppendixLastPriceOnProduct")] + MaterialFromInvoiceAppendixLastPriceOnProduct = 13, + + [System.Runtime.Serialization.EnumMember(Value = @"MaterialProductNoteWithDetailsLastPriceOnProduct")] + MaterialProductNoteWithDetailsLastPriceOnProduct = 14, + + [System.Runtime.Serialization.EnumMember(Value = @"BasisSum")] + BasisSum = 15, + + [System.Runtime.Serialization.EnumMember(Value = @"BasisSumWithReset")] + BasisSumWithReset = 16, + + [System.Runtime.Serialization.EnumMember(Value = @"BasisManualEntry")] + BasisManualEntry = 17, + + [System.Runtime.Serialization.EnumMember(Value = @"BasisNotInvoicedWork")] + BasisNotInvoicedWork = 18, + + [System.Runtime.Serialization.EnumMember(Value = @"BasisReset")] + BasisReset = 19, + + [System.Runtime.Serialization.EnumMember(Value = @"SumOne")] + SumOne = 20, + + [System.Runtime.Serialization.EnumMember(Value = @"SumOneWithReset")] + SumOneWithReset = 21, + + [System.Runtime.Serialization.EnumMember(Value = @"SumTwo")] + SumTwo = 22, + + [System.Runtime.Serialization.EnumMember(Value = @"SumTwoWithReset")] + SumTwoWithReset = 23, + + [System.Runtime.Serialization.EnumMember(Value = @"SumOneReset")] + SumOneReset = 24, + + [System.Runtime.Serialization.EnumMember(Value = @"SumTwoReset")] + SumTwoReset = 25, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromAssignmentByInvoiceType")] + TextFromAssignmentByInvoiceType = 26, + + [System.Runtime.Serialization.EnumMember(Value = @"TextManualInput")] + TextManualInput = 27, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromProcessingCode")] + TextFromProcessingCode = 28, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromAssignmentInvoiceText")] + TextFromAssignmentInvoiceText = 29, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromAssignmentLocation")] + TextFromAssignmentLocation = 30, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromAssignmentReference")] + TextFromAssignmentReference = 31, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromAssignmentDescription")] + TextFromAssignmentDescription = 32, + + [System.Runtime.Serialization.EnumMember(Value = @"TextFromProjectName")] + TextFromProjectName = 33, + + [System.Runtime.Serialization.EnumMember(Value = @"VariousPayroll")] + VariousPayroll = 34, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountManualEntry")] + AmountManualEntry = 35, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromAgreement")] + AmountFromAgreement = 36, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromInvoiced")] + AmountFromInvoiced = 37, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromInvoicedPerInvoice")] + AmountFromInvoicedPerInvoice = 38, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromAgreementAsText")] + AmountFromAgreementAsText = 39, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromInvoicedAsText")] + AmountFromInvoicedAsText = 40, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromInvoicedPerInvoiceAsText")] + AmountFromInvoicedPerInvoiceAsText = 41, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromToBeInvoiced")] + AmountFromToBeInvoiced = 42, + + [System.Runtime.Serialization.EnumMember(Value = @"AmountFromToBeInvoicedAsText")] + AmountFromToBeInvoicedAsText = 43, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoiceLineRuleTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Service")] + Service = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Material")] + Material = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Basis")] + Basis = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Sum")] + Sum = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Text")] + Text = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"VariousPayroll")] + VariousPayroll = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Amount")] + Amount = 7, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineRuleUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceLineRules")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceLineRules { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoiceLineTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Normal")] + Normal = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Text")] + Text = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Sum")] + Sum = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Func")] + Func = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Hidden")] + Hidden = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoiceReserveBilledPriceCalculationEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"TimeMatAgreement")] + TimeMatAgreement = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"FixedCoverage")] + FixedCoverage = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"CoveragePerHour")] + CoveragePerHour = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"MarkupOnCost")] + MarkupOnCost = 4, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoiceReserveFixedPriceCalculationEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"EnteredCompletion")] + EnteredCompletion = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"FixedCoverage")] + FixedCoverage = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"CoveragePerHour")] + CoveragePerHour = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"MarkupOnCost")] + MarkupOnCost = 4, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoiceStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Ready")] + Ready = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Invoiced")] + Invoiced = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Processing")] + Processing = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Error")] + Error = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"MovedToStorage")] + MovedToStorage = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceTemplateDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateDetailId { get; set; } + + /// + /// External ID corresponding to InvoiceTemplateDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateDetailIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceLineRuleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineRuleIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateIdExternal { get; set; } + + /// + /// Reference to InvoiceLineRule + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SortOrder { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceTemplateDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceTemplateDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceTemplateDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateDetailIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceTemplateDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceTemplateDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceTemplateDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + /// + /// External ID corresponding to InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceTemplates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceTemplates { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List InvoiceTemplateDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceTemplatePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceTemplateUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoiceTemplates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoiceTemplates { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List InvoiceTemplateDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceUpdateProductNoteLineParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceUpdateProductNoteLineResult + { + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceUpsertInvoiceLineSessionParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SortOrder { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineCode { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineText { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("registeredDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredDateTimeUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("updateAssignmentCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateAssignmentCost { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("updateStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateStock { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("traceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TraceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("returnResult")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ReturnResult { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceUpsertInvoiceLineSessionResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineSessionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineSessionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("deleted")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Deleted { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class InvoiceUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemInvoices")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemInvoices { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List InvoiceAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List InvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum InvoicingLineStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"ToBeInvoiced")] + ToBeInvoiced = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"OnInvoice")] + OnInvoice = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Invoiced")] + Invoiced = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"DoNotInvoiceConvertedToFixedPrice")] + DoNotInvoiceConvertedToFixedPrice = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"DoNotInvoiceFixedPrice")] + DoNotInvoiceFixedPrice = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"BilledButNotInvoiced")] + BilledButNotInvoiced = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"DoNotForwardInvoice")] + DoNotForwardInvoice = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"NotForInvoicing")] + NotForInvoicing = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"NotForInvoicingMoved")] + NotForInvoicingMoved = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JobCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + /// + /// External ID corresponding to JobCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemJobCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemJobCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JobCategoryGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JobCategoryGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JobCategoryPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JobCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemJobCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemJobCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LastRowVersionDto + { + + [System.Text.Json.Serialization.JsonPropertyName("tableName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TableName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("lastRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? LastRowVersion { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("maxId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? MaxId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LastRowVersionsRequestDto + { + + [System.Text.Json.Serialization.JsonPropertyName("tableNames")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List TableNames { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LastRowVersionsResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("lastRowVersions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List LastRowVersions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LedgerAccountDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountId { get; set; } + + /// + /// External ID corresponding to LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to ParentLedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("parentLedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ParentLedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: int? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountNumber { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("parentLedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParentLedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemLedgerAccounts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemLedgerAccounts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LedgerAccountGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LedgerAccountGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class LedgerAccountUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LedgerAccountIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemLedgerAccounts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemLedgerAccounts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum MOM_TypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"MOM")] + MOM = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"UserManual")] + UserManual = 2, + + } + + /// + /// Mapping of external values (through MapDataValue) with Contracting values. + ///
Allows for mapping e.g. mapping general ledger accounts between systems. + ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MapDataDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mapDataId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MapDataId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("applyDoneUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ApplyDoneUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("applyStartedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ApplyStartedUTC { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: long + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("entityId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? EntityId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("entityType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EntityType { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isInUse")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInUse { get; set; } + + /// + /// Reference to MapDataValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mapDataValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MapDataValueId { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Number { get; set; } + + /// + /// Reference to MapDataValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("suggested_MapDataValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Suggested_MapDataValueId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MapDataPrepareParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("clearExistingData")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ClearExistingData { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MapDataUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("mapDataId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MapDataId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MapDataValueDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mapDataValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MapDataValueId { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("descriptionPart1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DescriptionPart1 { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("descriptionPart2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DescriptionPart2 { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("entityType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EntityType { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("externalId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ExternalId { get; set; } + + /// + /// Reference to ExternalSystem + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Number { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MapDataValueUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("mapDataValueId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MapDataValueId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MaxRowVersionDto + { + + [System.Text.Json.Serialization.JsonPropertyName("maxRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? MaxRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum MessageChannelEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotDefined")] + NotDefined = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"SMS")] + SMS = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum MessageDeliveryStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundDraft")] + OutboundDraft = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundReadyForSend")] + OutboundReadyForSend = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundSendStarted")] + OutboundSendStarted = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundSendFailed")] + OutboundSendFailed = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundSent")] + OutboundSent = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundReceived")] + OutboundReceived = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"OutboundRead")] + OutboundRead = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"InboundReceived")] + InboundReceived = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"InboundReadByUser")] + InboundReadByUser = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class MessageDto + { + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("columnState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ColumnState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum NotificationTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"General")] + General = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"System")] + System = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Support")] + Support = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"ContactMessage")] + ContactMessage = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum OriginTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Manual")] + Manual = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"HandTerminal")] + HandTerminal = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Hpc")] + Hpc = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"AutoFakt")] + AutoFakt = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Purchase")] + Purchase = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"IncomingInvoice")] + IncomingInvoice = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"PurchaseThroghHpc")] + PurchaseThroghHpc = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"InvoiceManager")] + InvoiceManager = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaDocCenter")] + VismaDocCenter = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"DigiPenn")] + DigiPenn = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"NelfoR")] + NelfoR = 10, + + [System.Runtime.Serialization.EnumMember(Value = @"Pos")] + Pos = 11, + + [System.Runtime.Serialization.EnumMember(Value = @"ToStorage")] + ToStorage = 12, + + [System.Runtime.Serialization.EnumMember(Value = @"ToAssignment")] + ToAssignment = 13, + + [System.Runtime.Serialization.EnumMember(Value = @"FromAssignment")] + FromAssignment = 14, + + [System.Runtime.Serialization.EnumMember(Value = @"FromInvoice")] + FromInvoice = 15, + + [System.Runtime.Serialization.EnumMember(Value = @"OldRecords")] + OldRecords = 16, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ParticipantStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Assigned")] + Assigned = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Synced")] + Synced = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Viewed")] + Viewed = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Working")] + Working = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"ActiveViewed")] + ActiveViewed = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"ActiveWorking")] + ActiveWorking = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Removed")] + Removed = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Finished")] + Finished = 7, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaymentTermDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + /// + /// External ID corresponding to PaymentTermId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("days")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Days { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("daysStartNextMonth")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? DaysStartNextMonth { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemPaymentTerms")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemPaymentTerms { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaymentTermGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaymentTermGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaymentTermUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemPaymentTerms")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemPaymentTerms { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum PayrollFormatEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaSalary")] + VismaSalary = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"HuldtLillevikV5")] + HuldtLillevikV5 = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"UniMicro")] + UniMicro = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"PowerOfficeGO")] + PowerOfficeGO = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaSalaryWithoutWageRate")] + VismaSalaryWithoutWageRate = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaSalaryWithoutDateAndPeriod")] + VismaSalaryWithoutDateAndPeriod = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"VismaSalaryWithoutWageRateDateAndPeriod")] + VismaSalaryWithoutWageRateDateAndPeriod = 7, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum PerformedAction + { + + [System.Runtime.Serialization.EnumMember(Value = @"Unknown")] + Unknown = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Insert")] + Insert = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Update")] + Update = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Delete")] + Delete = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"NoAction")] + NoAction = 4, + + } + + /// + /// Permissions in use on the client. Note that API permissions with name on the format AccessType.TableName.ColumnName are automatically supported for regular read and write operations. AccessType is either Read, Write or ReadWrite. The ColumnName may be exluded, in which case the permission applies to all columns in the table. TableName may also refer to a View. The ReportIfMissing flag is expected to be set on automatically supported permissions. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PermissionDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("permissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PermissionId { get; set; } + + /// + /// External ID corresponding to PermissionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("permissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PermissionIdExternal { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// This permission is frontend-specific, and will be provided to the FE on request. If false, it is considered API-internal. To control both FE and the API, create two permissions and add them both to the same role. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isForFrontend")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsForFrontend { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// When checking permissions, this permission will be reported if it is missing rather than if it is present on a user. This is to reduce the amount of permission info returned to the API / frontend for a given user. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("reportIfMissing")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ReportIfMissing { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemPermissions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemPermissions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PermissionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("permissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PermissionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("permissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PermissionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemPermissions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemPermissions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum PieceworkTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"HourlyWage")] + HourlyWage = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"PieceworkBaseWage")] + PieceworkBaseWage = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"PieceworkDaytime")] + PieceworkDaytime = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"PieceworkRegisteredHours")] + PieceworkRegisteredHours = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"PieceworkHoursFixedSalary")] + PieceworkHoursFixedSalary = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"PieceworkAdvance")] + PieceworkAdvance = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"PieceworkSettlement")] + PieceworkSettlement = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"VariousSpecial")] + VariousSpecial = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PreProcessDto + { + + [System.Text.Json.Serialization.JsonPropertyName("column")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Column { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textID")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextID { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("suggestedValue")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SuggestedValue { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("columnState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ColumnState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enabled")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Enabled { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validations")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Validations { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PreProcessInvoiceLineCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementDetailId { get; set; } + + /// + /// External ID corresponding to ProductAgreementDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementDetailIdExternal { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("extraSurchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ExtraSurchargePercent { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("from")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string From { get; set; } + + /// + /// Type: long? + /// + + [System.Text.Json.Serialization.JsonPropertyName("fromNumeric")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? FromNumeric { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("fullFrom")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FullFrom { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fullTo")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FullTo { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("price")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Price { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priority")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Priority { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentIsVisible")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SurchargePercentIsVisible { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("to")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string To { get; set; } + + /// + /// Type: long? + /// + + [System.Text.Json.Serialization.JsonPropertyName("toNumeric")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToNumeric { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ProductAgreementDetail_PriceTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ProductAgreementDetail_PriceTypeEnum? Enum_ProductAgreementDetail_PriceTypeId { get; set; } + + /// + /// Reference to ProductAgreement + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementDetailGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementDetailGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementDetailId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementDetailIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ProductAgreementDetail_PriceTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"SalesPrice")] + SalesPrice = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"SupplierPrice")] + SupplierPrice = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"CostPrice")] + CostPrice = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"CostPriceFromPurchaseAgreement")] + CostPriceFromPurchaseAgreement = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"CostPriceFromStock")] + CostPriceFromStock = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to UsePriceFrom_SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("usePriceFrom_SupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UsePriceFrom_SupplierIndustryTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("calculateFromInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CalculateFromInvoice { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to IndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("usePriceFrom_SupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UsePriceFrom_SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Income_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to POSPurchase_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSPurchase_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSPurchase_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSPurchase_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSSale_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSSale_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSSale_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSSale_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Purchase_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Purchase_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Purchase_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Purchase_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Sale_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sale_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Sale_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sale_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// Reference to Country + ///
Type: string? (Max: 2) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CountryId { get; set; } + + /// + /// Type: long? + /// + + [System.Text.Json.Serialization.JsonPropertyName("gTIN")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? GTIN { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + /// + /// Reference to IndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceMergeProduct")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceMergeProduct { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceShowProductNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceShowProductNumber { get; set; } + + /// + /// No: "Diversevare", will not be merged on invoices + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isVarious")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsVarious { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSPurchase_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSPurchase_VATRequired_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSSale_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSSale_VATRequired_LedgerAccountId { get; set; } + + /// + /// This always has quantity 1, which should be auto-set to 1 on product note details. This 1 must be disabled on product note details. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceOnly { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductName { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Purchase_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Purchase_VATRequired_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATRequired_LedgerAccountId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPrice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statisticsInclude")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? StatisticsInclude { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 3) + /// + + [System.Text.Json.Serialization.JsonPropertyName("unit")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Unit { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProducts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProducts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productExtendedInfos")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductExtendedInfos { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductExtendedInfoDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productExtendedInfoId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductExtendedInfoId { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// 0: Picture + ///
1: FDV + ///
2: HMS + ///
.... + ///
__When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("type")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Type { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Value { get; set; } + + /// + /// Reference to Product + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductExtendedInfoUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productExtendedInfoId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductExtendedInfoId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + } + + /// + /// Represents a file which is part of a file set. + ///
+ ///
When an import succeeds, the LastSuccess fields are filled in. + ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductImportDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productImportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductImportId { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpDir")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FtpDir { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpFileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FtpFileName { get; set; } + + /// + /// Hash value from the FTP server, if supported. + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ftpHash")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FtpHash { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ftpLastChangedDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? FtpLastChangedDateTimeUTC { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpPwd")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FtpPwd { get; set; } + + /// + /// Type: long? + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpSize")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? FtpSize { get; set; } + + /// + /// Type: bool? + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpSupportsHash")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? FtpSupportsHash { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpSvr")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FtpSvr { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("ftpUsr")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FtpUsr { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("hash")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Hash { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("imported_UTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? Imported_UTC { get; set; } + + /// + /// The imported file represents either a product agreement or a product catalog. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isProductAgreement")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsProductAgreement { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_FileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LastSuccess_FileName { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_Imported_UTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? LastSuccess_Imported_UTC { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_Staged_LineCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastSuccess_Staged_LineCount { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_Staged_UTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? LastSuccess_Staged_UTC { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_StagingInMs")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastSuccess_StagingInMs { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_StatusMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LastSuccess_StatusMessage { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("manuallyUpladed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ManuallyUpladed { get; set; } + + /// + /// Type: long? + /// + + [System.Text.Json.Serialization.JsonPropertyName("size")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? Size { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("staged_LineCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Staged_LineCount { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("staged_UTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? Staged_UTC { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("stagingInMs")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StagingInMs { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("statusMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusMessage { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_FileDownloadModeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public FileDownloadModeEnum? Enum_FileDownloadModeId { get; set; } + + /// + /// Reference to ProductImportFileSet + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productImportFileSetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductImportFileSetId { get; set; } + + } + + /// + /// Represents a set of product catalog files imported together, usually a product list and a product agreement. + ///
+ ///
When an import succeeds, the LastSuccess fields are filled in. + ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductImportFileSetDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productImportFileSetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductImportFileSetId { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// Performance statistic: How long it took to import the file set with the given job number from the staging tables. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("importingInMs")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ImportingInMs { get; set; } + + /// + /// When importing a set of files, the job number is increased. The job number is used in the client database to ensure corresponding files are handled together. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobNumber { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobStartedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? JobStartedUTC { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_ImportingInMs")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastSuccess_ImportingInMs { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_JobNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastSuccess_JobNumber { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_JobStartedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? LastSuccess_JobStartedUTC { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_ProductCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastSuccess_ProductCount { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_StagingInMs")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastSuccess_StagingInMs { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastSuccess_StatusMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LastSuccess_StatusMessage { get; set; } + + /// + /// Set to 1 when a user manually requested importing the file set. Will be reset to 0 once the import job starts. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("manuallyRequested")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ManuallyRequested { get; set; } + + /// + /// This represents a manually uploaded file set, usually through the CW UI. Only one manually uploaded file set exists at one time, and the file set will be reused on the next manual upload. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("manuallyUploaded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ManuallyUploaded { get; set; } + + /// + /// The number of imported products + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductCount { get; set; } + + /// + /// Performance statistic: How long it took from the job started to all files were inserted into the staging tables with the corresponding job number. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stagingInMs")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StagingInMs { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("statusMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusMessage { get; set; } + + /// + /// Type: bool? + /// + + [System.Text.Json.Serialization.JsonPropertyName("succeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Succeeded { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ImportFrequencyId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ImportFrequencyEnum? Enum_ImportFrequencyId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productImports")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductImports { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductImportFileSetUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productImportFileSetId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductImportFileSetId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productImports")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductImports { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductImportUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productImportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductImportId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProductNoteId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to ProductNote + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + /// + /// External ID corresponding to ProductNoteId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to NoteMovedFromAssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("noteMovedFromAssignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string NoteMovedFromAssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to NoteMovedToAssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("noteMovedToAssignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string NoteMovedToAssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to NoteMovedToStorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("noteMovedToStorageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string NoteMovedToStorageIdExternal { get; set; } + + /// + /// External ID corresponding to RegBy_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("regBy_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RegBy_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("documentIdExt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DocumentIdExt { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("documentOrigin")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DocumentOrigin { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("noteDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string NoteDescription { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("noteMovedFromAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? NoteMovedFromAssignmentId { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("noteMovedToAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? NoteMovedToAssignmentId { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("noteMovedToStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? NoteMovedToStorageId { get; set; } + + /// + /// Type: int? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteNumber { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("regBy_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RegBy_EmployeeId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("registeredTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredTimeUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("returnNote")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ReturnNote { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("skipOnNextInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SkipOnNextInvoice { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("voucherNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VoucherNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_OriginTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public OriginTypeEnum? Enum_OriginTypeId { get; set; } + + /// + /// Reference to SupplierInvoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductNotes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductNotes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNoteAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNoteLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + /// + /// External ID corresponding to ProductNoteLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteLineIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to DimensionValueId_1 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_1External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_2 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_2External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_3 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_3External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_4 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_4External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_5 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_5External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_6 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_6External { get; set; } + + /// + /// External ID corresponding to Income_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Income_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineIdExternal { get; set; } + + /// + /// External ID corresponding to Parent_ProductNoteLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("parent_ProductNoteLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Parent_ProductNoteLineIdExternal { get; set; } + + /// + /// External ID corresponding to ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to ProductNoteId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceLineIdExternal { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_LedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CustomerPrice { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_1 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_2 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_3 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_4 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_5 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_6 { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_LedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + /// + /// Reference to Invoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + /// + /// Reference to InvoiceLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceSpecificationNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceSpecificationNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isVarious")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsVarious { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("listPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("override_QuantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Override_QuantityInvoice { get; set; } + + /// + /// Reference to ProductNoteLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("parent_ProductNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Parent_ProductNoteLineId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceOnly { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductAgreementId { get; set; } + + /// + /// Type: string? + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductName { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + /// + /// Reference to ProjectPeriod + ///
The project period will be auto-filled in based on RegisteredDateTimeUTC if it is missing. Special permissions are needed to alter the project period on an existing record. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("registeredDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredDateTimeUTC { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("salesPriceModified")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SalesPriceModified { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SortOrder { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// Reference to SupplierInvoiceLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceLineId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + /// + /// Set to 0 to prevent syncing the specific line to mobile devices. Used on soft-deleted rows (Sys_Deactivated = 1) which have been hard-deleted in SpeedyCraft to prevent integration issues. + ///
__When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_AssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_AssignmentId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceAvgFIFO")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceAvgFIFO { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceAvgUpdOnAdd")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceAvgUpdOnAdd { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceDefault")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceDefault { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceLocked")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_CostPriceLocked { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_InvoicedProjectPeriod")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_InvoicedProjectPeriod { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_InvoicedProjectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_InvoicedProjectPeriodId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_LastChangeOrigin")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_LastChangeOrigin { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_PostProcessNeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_PostProcessNeeded { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProjectAccountCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProjectAccountCategoryId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProjectPeriod")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProjectPeriod { get; set; } + + /// + /// Reference to PurchaseAgreement + ///
Purchase agreement used at the time of resolving cost price and customer price. The primary purpose of this field is to be able to detect errors in agreements and subsequently fix those errors cleanly. + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_PurchaseAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_PurchaseAgreementId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("updateAssignmentCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateAssignmentCost { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("updateStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UpdateStock { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_CostPriceSourceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public CostPriceSourceEnum? Enum_CostPriceSourceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoicingLineStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoicingLineStatusEnum? Enum_InvoicingLineStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Enum_OriginTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public OriginTypeEnum? Sys_Enum_OriginTypeId { get; set; } + + /// + /// Reference to ProductNote + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductNoteLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductNoteLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteLineGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteLineGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductNoteLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductNoteLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveLinesToAssignmentOrStorageParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLinesAsJson")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteLinesAsJson { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveLinesToAssignmentOrStorageResult + { + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveLinesToAssignmentParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLinesAsJson")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteLinesAsJson { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveLinesToAssignmentResult + { + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveToAssignmentParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_1 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_2 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_3 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_4 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_5 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_6 { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveToAssignmentResult + { + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveToStorageParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteMoveToStorageResult + { + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNotePreProcessProductNoteLineParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_OriginTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public OriginTypeEnum? Enum_OriginTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceModified")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SalesPriceModified { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_CostPriceSourceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public CostPriceSourceEnum? Enum_CostPriceSourceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNotePreProcessProductNoteLineResult + { + + [System.Text.Json.Serialization.JsonPropertyName("column")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Column { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("suggestedValue")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SuggestedValue { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("columnState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ColumnState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enabled")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Enabled { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductNoteUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNoteIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductNotes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductNotes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNoteAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNoteLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNoteLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSupplierIndustryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("costPriceOverride")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPriceOverride { get; set; } + + /// + /// Reference to DiscountGroup + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("discountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DiscountGroupId { get; set; } + + /// + /// Type: bool? + /// + + [System.Text.Json.Serialization.JsonPropertyName("inactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Inactive { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("listPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPrice { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + /// + /// Reference to Product + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductName { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// Not in use for Nelfo4, handles Comfort specific data (Synergo) + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierProductNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierProductNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductSupplierIndustryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductSupplierIndustryTypes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSupplierIndustryTypeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSupplierIndustryTypeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSupplierIndustryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProductSupplierIndustryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProductSupplierIndustryTypes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSyncDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSyncId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSyncId { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("abortRequested")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AbortRequested { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to ExternalSystem + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("fullProductNumberFrom")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FullProductNumberFrom { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("fullProductNumberTo")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FullProductNumberTo { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastTransferMilliseconds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferMilliseconds { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastTransferredId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LastTransferredId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNumberFrom")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumberFrom { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNumberTo")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumberTo { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("progress")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Progress { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("progressTargetCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProgressTargetCount { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("statusDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StatusDescription { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SyncStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SyncStatusEnum? Enum_SyncStatusId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSyncUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSyncId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSyncId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProducts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProducts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productExtendedInfos")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductExtendedInfos { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductUpsertWithSupplierIndustryTypeParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("productNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATRequired_LedgerAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATFree_LedgerAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Purchase_VATRequired_LedgerAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Purchase_VATFree_LedgerAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("inactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Inactive { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isVarious")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsVarious { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("priceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceOnly { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("unit")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Unit { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VatRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("listPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPriceOverride")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPriceOverride { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("discountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DiscountGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductUpsertWithSupplierIndustryTypeResult + { + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountCategoryId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceOnly { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ProjectAccountCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ProjectAccountCategoryTypeEnum? Enum_ProjectAccountCategoryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ProjectAccountCategoryTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Cost")] + Cost = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Income")] + Income = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + /// + /// External ID corresponding to ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountIdExternal { get; set; } + + /// + /// Type: int? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("accountNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AccountNumber { get; set; } + + /// + /// Reference to ProjectAccountReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assessment_ProjectAccountReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Assessment_ProjectAccountReportCategoryId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetUse")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? BudgetUse { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to ProjectAccountCategory + ///
__When creating records:__ ___Default value = 0___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountCategoryId { get; set; } + + /// + /// Reference to ProjectAccountReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("summary_ProjectAccountReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Summary_ProjectAccountReportCategoryId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectAccounts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectAccounts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("accountNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AccountNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountReportCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountReportCategoryId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("reportText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ReportText { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to ProjectAccountReportCategoryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountReportCategoryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountReportCategoryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountReportCategoryTypeId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("reportText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ReportText { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProjectAccountReportCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountReportCategoryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountReportCategoryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProjectAccountReportCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountReportCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountReportCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAccountUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectAccounts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectAccounts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ProjectAssessmentTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"CoverageDegree")] + CoverageDegree = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"CoveragePerHour")] + CoveragePerHour = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Project + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// External ID corresponding to Budget_DimensionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("budget_DimensionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Budget_DimensionIdExternal { get; set; } + + /// + /// External ID corresponding to CaseHandler_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("caseHandler_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CaseHandler_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to Default_AssignmentCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_AssignmentCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_InvoiceTemplateIdExternal { get; set; } + + /// + /// External ID corresponding to Default_ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to ParentProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("parentProjectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ParentProjectIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectGroupIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectTypeIdExternal { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// Reference to Dimension + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budget_DimensionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Budget_DimensionId { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("caseHandler_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CaseHandler_EmployeeId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("customersReference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomersReference { get; set; } + + /// + /// Reference to AssignmentCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AssignmentCategoryId { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_InvoiceTemplateId { get; set; } + + /// + /// Reference to ProductAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ProductAgreementId { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateUTC { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("estimatedCompletionPercentage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? EstimatedCompletionPercentage { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("estimatedTotalHours")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? EstimatedTotalHours { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("fixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? FixedPrice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceReserveSumAllAssignment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? InvoiceReserveSumAllAssignment { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("marginPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? MarginPercent { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: string? + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("parentProjectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ParentProjectId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectAssessment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ProjectAssessment { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ProjectDateTimeUTC { get; set; } + + /// + /// Reference to ProjectGroup + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectGroupId { get; set; } + + /// + /// Reference to ProjectType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectTypeId { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("reference")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Reference { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("riskMarginPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? RiskMarginPercent { get; set; } + + /// + /// Reference to ServiceAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateUTC { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("warrantyDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? WarrantyDateUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ProjectAssessmentTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ProjectAssessmentTypeEnum? Enum_ProjectAssessmentTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ProjectStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ProjectStatusEnum? Enum_ProjectStatusId { get; set; } + + /// + /// Reference to Contact (directly updateable through Contact) + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("contactId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ContactId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public ContactDto Contact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjects")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjects { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProjectAttachments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectGroupId { get; set; } + + /// + /// External ID corresponding to ProjectGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectGroupIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectGroups { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectGroupGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectGroupGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectGroupId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectGroupIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectGroups { get; set; } + + } + + /// + /// Project periods are used for reporting purposes, and usually correspond to months. They are commonly synchronized with accounting periods, but can also deviate. Project periods will be auto-created as monthly periods if Settings_Main has AutoCreateProjectPeriods set to true. + ///
+ ///
If Services, ProductNoteLines or InvoiceLines are registered on a closed project period (based on dates), they will be moved to the next open period. + ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectPeriodDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Start and end dates are inclusive. + ///
+ ///
This date must be identical to or later than the start date. + ///
__When creating records:__ ___Mandatory___ + ///
Type: DateTime + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDate { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("periodNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PeriodNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("periodYear")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PeriodYear { get; set; } + + /// + /// Start and end dates are inclusive. + ///
+ ///
The start date of the project period must be the day after the end date of the previous project period, and will be set automatically by the system when a period is created. Start and end dates may be adjusted after creation, but the project period will be invalid if there is a gap between this and the previous period. + ///
Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDate { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectPeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectPeriods { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectPeriodUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectPeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectPeriods { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectReportDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectReportDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportDetailId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("fromNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromNumber { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("reportText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ReportText { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SortOrder { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sumLevel")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SumLevel { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sumLevelReset")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SumLevelReset { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("toNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ToNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ProjectReportDetailTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ProjectReportDetailTypeEnum? Enum_ProjectReportDetailTypeId { get; set; } + + /// + /// Reference to ProjectReport + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectReportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ProjectReportDetailTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"ProjectAccount")] + ProjectAccount = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Text")] + Text = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Sum")] + Sum = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Reserved")] + Reserved = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"WageCodeReportCategory")] + WageCodeReportCategory = 4, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectReportDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectReportDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectReportDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectReportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectReportNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectReportDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProjectReportDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectReportPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("projectReportNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectReportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectReportUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectReportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectReportId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectReportDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProjectReportDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ProjectStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotStarted")] + NotStarted = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"InProgress")] + InProgress = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Completed")] + Completed = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Warranty")] + Warranty = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectTypeId { get; set; } + + /// + /// External ID corresponding to ProjectTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectTypes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectTypeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectTypeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjectTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjectTypes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProjectUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("contact")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public ContactUpsertResultDto Contact { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemProjects")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemProjects { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProjectAttachments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PurchaseAgreementDiscountGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementDiscountGroupId { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to DiscountGroup + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("discountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DiscountGroupId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("listPriceDiscountPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPriceDiscountPercent { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to PurchaseAgreement + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PurchaseAgreementDiscountGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementDiscountGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PurchaseAgreementDiscountProductDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountProductId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementDiscountProductId { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("fixedCostPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? FixedCostPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("listPriceDiscountPercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPriceDiscountPercent { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to PurchaseAgreement + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PurchaseAgreementDiscountProductUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountProductId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementDiscountProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PurchaseAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementId { get; set; } + + /// + /// Nullable because old VC agreements sometimes have an empty agreement number (which maps here) + ///
Type: string? (Max: 50) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("agreementCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AgreementCode { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List PurchaseAgreementDiscountGroups { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountProducts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List PurchaseAgreementDiscountProducts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PurchaseAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PurchaseAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List PurchaseAgreementDiscountGroups { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreementDiscountProducts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List PurchaseAgreementDiscountProducts { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class RecalculateAssignmentDto + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNotes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNotes { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ReprocessErrorsCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + } + + /// + /// Auth.Write:ClientAdmin + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class RoleDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + /// + /// External ID corresponding to RoleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("roleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RoleIdExternal { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("adminFor_Enum_ClientLevelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ClientLevelEnum? AdminFor_Enum_ClientLevelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ClientLevelId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ClientLevelEnum? Enum_ClientLevelId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemRoles")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemRoles { get; set; } + + } + + /// + /// Auth.Write:ClientAdmin + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class RolePermissionDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RolePermissionId { get; set; } + + /// + /// External ID corresponding to RolePermissionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RolePermissionIdExternal { get; set; } + + /// + /// External ID corresponding to PermissionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("permissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PermissionIdExternal { get; set; } + + /// + /// External ID corresponding to RoleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("roleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RoleIdExternal { get; set; } + + /// + /// Reference to Permission + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("permissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PermissionId { get; set; } + + /// + /// Reference to Role + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemRolePermissions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemRolePermissions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class RolePermissionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RolePermissionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("rolePermissionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RolePermissionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemRolePermissions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemRolePermissions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class RoleUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("roleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RoleIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemRoles")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemRoles { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum RowStateEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Ok")] + Ok = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Highlight")] + Highlight = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"IntInfo")] + IntInfo = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Info")] + Info = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"IntWarning")] + IntWarning = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Warning")] + Warning = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"IntError")] + IntError = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Error")] + Error = 7, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SaveInvoiceCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dueDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? DueDate { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("registeredDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredDate { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("note")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Note { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceComment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatFree")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? VatFree { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SaveInvoiceResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SendInvoiceCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SendInvoiceResult + { + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementDetailDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + /// + /// External ID corresponding to ServiceAgreementDetailId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementDetailIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + /// + /// Reference to EmployeeInvoiceCategory + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceDescription { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentIsVisible")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SurchargePercentIsVisible { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Value { get; set; } + + /// + /// Reference to WageCode + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ServiceAgreementDetailValueTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ServiceAgreementDetailValueTypeEnum? Enum_ServiceAgreementDetailValueTypeId { get; set; } + + /// + /// Reference to ServiceAgreement + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemServiceAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementDetailGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementDetailGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementDetailPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementDetailUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementDetailId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetailIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementDetailIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemServiceAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ServiceAgreementDetailValueTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Value")] + Value = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Percent")] + Percent = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + /// + /// External ID corresponding to ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemServiceAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ServiceAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceAgreementUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceAgreementIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServiceAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemServiceAgreements { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceAgreementDetails")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ServiceAgreementDetails { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceContractDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceContractId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceContractId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AssignmentId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("inactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Inactive { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("indexRate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? IndexRate { get; set; } + + /// + /// Reference to IndexRateGroup + ///
__When creating records:__ ___Mandatory___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("indexRateGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndexRateGroupId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("indexRateStartDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? IndexRateStartDate { get; set; } + + /// + /// Type: string? (Max: 1024) + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceRecurrencePattern")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceRecurrencePattern { get; set; } + + /// + /// Type: string? (Max: 1024) + /// + + [System.Text.Json.Serialization.JsonPropertyName("recurrencePattern")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RecurrencePattern { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceContractNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceContractNumber { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateUTC { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ServiceContractRecurrenceHandlingId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ServiceContractRecurrenceHandlingEnum? Enum_ServiceContractRecurrenceHandlingId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum ServiceContractRecurrenceHandlingEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ReOpenDefaultAssignment")] + ReOpenDefaultAssignment = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"CreateNewAssignment")] + CreateNewAssignment = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"NotifyUserOnly")] + NotifyUserOnly = 3, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceContractUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceContractId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceContractId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + /// + /// External ID corresponding to ServiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("serviceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to CostSurcharge_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("costSurcharge_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CostSurcharge_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to DimensionValueId_1 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_1External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_2 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_2External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_3 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_3External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_4 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_4External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_5 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_5External { get; set; } + + /// + /// External ID corresponding to DimensionValueId_6 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_6External { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeInvoiceCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to Income_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Income_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Invoice_ApprovalEmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoice_ApprovalEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Invoice_ApprovalEmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineIdExternal { get; set; } + + /// + /// External ID corresponding to JobCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to MovedFromAssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("movedFromAssignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string MovedFromAssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to MovedToAssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("movedToAssignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string MovedToAssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// External ID corresponding to Wage_ApprovalEmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wage_ApprovalEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Wage_ApprovalEmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to WagePeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WagePeriodIdExternal { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approvalComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ApprovalComment { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_LedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costPriceSurcharge")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPriceSurcharge { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costPriceSurchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPriceSurchargePercent { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costSurcharge_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CostSurcharge_ProjectAccountId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("createdFrom_ServiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CreatedFrom_ServiceId { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_1 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_2 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_3 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_4 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_5 { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_6 { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// Reference to EmployeeInvoiceCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeInvoiceCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeInvoiceCategoryId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateTimeUTC { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_LedgerAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_ApprovalEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Invoice_ApprovalEmployeeId { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceDescription")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceDescription { get; set; } + + /// + /// Reference to Invoice + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + /// + /// Reference to InvoiceLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + /// + /// Reference to JobCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("movedFromAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MovedFromAssignmentId { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("movedToAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MovedToAssignmentId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("pieceworkNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PieceworkNumber { get; set; } + + /// + /// Reference to ProjectPeriod + ///
The project period will be auto-filled in based on the StartDateTimeUTC field if it is missing. Special permissions are needed to alter the project period on an existing record. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + /// + /// This field will be changed to nullable + ///
__When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("salesPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("serviceComment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceComment { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: DateTime + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDateTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateTimeUTC { get; set; } + + /// + /// Set to 0 to prevent syncing the specific line to mobile devices. Used on soft-deleted rows (Sys_Deactivated = 1) which have been hard-deleted in SpeedyCraft to prevent integration issues. + ///
__When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_InvoicedProjectPeriod")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_InvoicedProjectPeriod { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_InvoicedProjectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_InvoicedProjectPeriodId { get; set; } + + /// + /// Type: bool? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_IsWorkTime")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_IsWorkTime { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_LastChangeOrigin")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_LastChangeOrigin { get; set; } + + /// + /// When true, no next wage code processing should be performed on the service during postprocessing + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_NextWageCodeProcessed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_NextWageCodeProcessed { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_PostProcessMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_PostProcessMessage { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_PostProcessNeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_PostProcessNeeded { get; set; } + + /// + /// Type: byte? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProjectAccountCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProjectAccountCategoryId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProjectPeriod")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProjectPeriod { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wage_ApprovalEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Wage_ApprovalEmployeeId { get; set; } + + /// + /// Reference to WageCode + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeName { get; set; } + + /// + /// Reference to WageCodeReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + /// + /// Reference to WagePeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoicingLineStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoicingLineStatusEnum? Enum_InvoicingLineStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_WageCodeInvoiceRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public WageCodeInvoiceRuleEnum? Enum_WageCodeInvoiceRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_WagePeriodStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public WagePeriodStatusEnum? Enum_WagePeriodStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoice_Enum_ApprovalStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ApprovalStatusEnum? Invoice_Enum_ApprovalStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Enum_WageCodeTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public WageCodeTypeEnum? Sys_Enum_WageCodeTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wage_Enum_ApprovalStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ApprovalStatusEnum? Wage_Enum_ApprovalStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServices")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemServices { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceMoveToAssignmentParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceIds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceIds { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toAssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ToAssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_1 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_2")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_2 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_3")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_3 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_4")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_4 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_5")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_5 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_6")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_6 { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceMoveToAssignmentResult + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServicePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ServiceUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ServiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("serviceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ServiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemServices")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemServices { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SetInvoiceLineRuleWageCodeTypesCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_WageCodeTypeIds")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Enum_WageCodeTypeIds { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SetInvoiceStatusCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceStatusId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SetInvoiceStatusResult + { + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + } + + /// + /// Angitt materialavtale vil bli brukt på alle ordre om ikke annet oppgis + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_AssignmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("settings_AssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_AssignmentId { get; set; } + + /// + /// External ID corresponding to Default_AssignmentCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_AssignmentCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to Default_CasehandlerEmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_CasehandlerEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_CasehandlerEmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_InvoiceTemplateIdExternal { get; set; } + + /// + /// External ID corresponding to Default_ProductAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_ProductAgreementIdExternal { get; set; } + + /// + /// External ID corresponding to Default_ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_ProjectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_ProjectIdExternal { get; set; } + + /// + /// External ID corresponding to Default_ServiceAgreementId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("default_ServiceAgreementIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Default_ServiceAgreementIdExternal { get; set; } + + /// + /// -Her bestemmes om bruker(e) kan korrigere importerte timer fra håndholdt (Handyman / SpeedyCraft) i brannmur. + ///
-Hvis timekodkjenning er valgt vil det ikke være mulig for brukere å korrigere her uten at denne koden er satt. + ///
-Unntak er systembruker som uavhengig av koder vil kunne foreta korrigeringer. + ///
Type: bool? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("allowHpcTimeCorrection")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AllowHpcTimeCorrection { get; set; } + + /// + /// Hvis på må ordre godkjennes før denne kan faktureres + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approveBeforeInvoicing")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ApproveBeforeInvoicing { get; set; } + + /// + /// Saksbehandler må godkjenne timer før disse kan faktureres. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approveHoursBeforeInvoicing")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ApproveHoursBeforeInvoicing { get; set; } + + /// + /// Automatisk overføring av ordrens dato til feltet for Startdato + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentDateToStartDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AssignmentDateToStartDate { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("budgetNew_AddAllItem")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? BudgetNew_AddAllItem { get; set; } + + /// + /// Hvis angitt, automatisk overføring av kundens kategori til ordrens kategori ved oppretting av nye ordrer. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("copyCategoryFromCustomer")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CopyCategoryFromCustomer { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("coverageRateFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CoverageRateFixedPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("coverageRateNotFixedPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CoverageRateNotFixedPrice { get; set; } + + /// + /// Reference to AssignmentCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_AssignmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_AssignmentCategoryId { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_CasehandlerEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_CasehandlerEmployeeId { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_InvoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_InvoiceTemplateId { get; set; } + + /// + /// Reference to ProductAgreement + ///
Angitt materialavtale vil bli brukt på alle ordre om ikke annet oppgis + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ProductAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ProductAgreementId { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ProjectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ProjectId { get; set; } + + /// + /// Reference to ServiceAgreement + ///
Angitt timeavtale vil bli brukt på alle ordre om ikke annet oppgis + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_ServiceAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_ServiceAgreementId { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_SyncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Default_SyncToMobileDevice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_IsFinalInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Invoice_IsFinalInvoice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_SendImmediately")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Invoice_SendImmediately { get; set; } + + /// + /// Hvis på må alle nye ordre opprettes med saksbehandler angitt + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mandatoryCaseHandler")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? MandatoryCaseHandler { get; set; } + + /// + /// Hvis på må alle nye ordre opprettes med kategori + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mandatoryCategory")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? MandatoryCategory { get; set; } + + /// + /// Krysses denne av må det angis SpeedyCraft-/Handyman-kategori på alle ordre som opprettes + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mandatoryHpcCategory")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? MandatoryHpcCategory { get; set; } + + /// + /// Krysses denne av må det angis materialavtale på alle ordre som opprettes + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("mandatoryMatAgreement")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? MandatoryMatAgreement { get; set; } + + /// + /// -Her angis den ønskede dekningsgrad på ordre i bedriften. den kan overstyres pr avdeling som igjen kan overstyres på den enkelte ordre. + ///
-Ved summering av ordre i ordrebehandling vil ordre som ikke oppfyller kravet til dekningsgrad vises i rødt på skjermen + ///
Type: decimal? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("minimumCoveragePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? MinimumCoveragePercent { get; set; } + + /// + /// Angir om det er lov å endre kundenummer på ordre etter at det er ført timer/materiell på denne, eller etter at ordre er fakturert + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("noChangeCustomerAfterTimeMatInv")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? NoChangeCustomerAfterTimeMatInv { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNote_CostPrice_Edit")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ProductNote_CostPrice_Edit { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceReserveBilledPriceCalculationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceReserveBilledPriceCalculationEnum? Enum_InvoiceReserveBilledPriceCalculationId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_InvoiceReserveFixedPriceCalculationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public InvoiceReserveFixedPriceCalculationEnum? Enum_InvoiceReserveFixedPriceCalculationId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_AssignmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("settings_AssignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + /// + /// Main client settings, changeable by the user. This table has one and only one row, with ID = 1. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_MainDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("settings_MainId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_MainId { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to InvoiceTemplateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceTemplateIdExternal { get; set; } + + /// + /// External ID corresponding to PaymentTermId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("paymentTermIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PaymentTermIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to Standard_SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("standard_SupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Standard_SupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("autoFallbackProductNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AutoFallbackProductNumber { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("branch")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Branch { get; set; } + + /// + /// Name of this client. Not to be confused by ClientID, which is defined in the Sys_Settings table. + ///
Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("clientName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ClientName { get; set; } + + /// + /// Type: string? (Max: 2) + /// + + [System.Text.Json.Serialization.JsonPropertyName("defaultLanguage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DefaultLanguage { get; set; } + + /// + /// Reference to Department + ///
Default department. There is at least one department defined on the client, even if UseDepartment is false. + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("email")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Email { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("handleOffers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? HandleOffers { get; set; } + + /// + /// Reference to IndustryType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_KeepValuesForCreditNotes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Invoice_KeepValuesForCreditNotes { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoice_SendImmediately")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Invoice_SendImmediately { get; set; } + + /// + /// Reference to InvoiceTemplate + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceTemplateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceTemplateId { get; set; } + + /// + /// Reference to PaymentTerm + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("paymentTermId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PaymentTermId { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Phone + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("phoneNumberForSMS")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string PhoneNumberForSMS { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("preserveGridSettingsLocally")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PreserveGridSettingsLocally { get; set; } + + /// + /// Reference to Product + ///
Default product used by e.g. SupplierInvoice if no matching product is found when importing supplier invoice lines. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productNote_CostPrice_Edit")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ProductNote_CostPrice_Edit { get; set; } + + /// + /// Auto-creates project periods when needed, assuming one month periods. + ///
__When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriod_AutoCreate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ProjectPeriod_AutoCreate { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriod_LastClosedYYYYPP")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriod_LastClosedYYYYPP { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("require2FAForAllUsers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Require2FAForAllUsers { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("standard_SupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Standard_SupplierIndustryTypeId { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoice_ImportWhenApproved")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SupplierInvoice_ImportWhenApproved { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Email + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supportEmail_Partner")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupportEmail_Partner { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Controls whether departments are in use for the client. Even if departments are not in use, a default department is present and used everywhere where we have department references. + ///
+ ///
Example: Assignments + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("useDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseDepartments { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("useDimensions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseDimensions { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("useServiceApprovalWage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseServiceApprovalWage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_StorageModeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public StorageModeEnum? Enum_StorageModeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_TimeZoneId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public TimeZoneEnum? Enum_TimeZoneId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_MainUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("settings_MainId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_MainId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_ProductImportDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("settings_ProductImportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_ProductImportId { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Income_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Income_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSPurchase_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSPurchase_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSPurchase_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSPurchase_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSSale_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSSale_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to POSSale_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string POSSale_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Purchase_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Purchase_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Purchase_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Purchase_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Sale_VATFree_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sale_VATFree_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to Sale_VATRequired_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sale_VATRequired_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("income_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Income_ProjectAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSPurchase_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSPurchase_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSPurchase_VATRequired_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSSale_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pOSSale_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? POSSale_VATRequired_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Purchase_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("purchase_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Purchase_VATRequired_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sale_VATFree_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATFree_LedgerAccountId { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sale_VATRequired_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sale_VATRequired_LedgerAccountId { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargeDiscountGroup")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargeDiscountGroup { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_ProductImportUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("settings_ProductImportId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_ProductImportId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_UserDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("settings_UserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_UserId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("key")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Key { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("value")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Settings_UserUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("settings_UserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Settings_UserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockAdjustmentParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockAdjustmentPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockAdjustmentPreProcessResult + { + + [System.Text.Json.Serialization.JsonPropertyName("column")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Column { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("suggestedValue")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SuggestedValue { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("columnState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ColumnState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enabled")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Enabled { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockCountDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockCountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountId { get; set; } + + /// + /// External ID corresponding to StockCountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockCountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountIdExternal { get; set; } + + /// + /// External ID corresponding to ApprovedBy_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("approvedBy_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ApprovedBy_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to Responsible_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("responsible_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Responsible_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approved")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Approved { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approvedBy_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ApprovedBy_EmployeeId { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countEndedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? CountEndedUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countStartedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? CountStartedUTC { get; set; } + + /// + /// If true, the stock count lines is complete. This means that any stocks not matched by a stock count line is considered to have 0 items. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fullCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? FullCount { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("responsible_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Responsible_EmployeeId { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockCounts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStockCounts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StockCountLines { get; set; } + + } + + /// + /// Will be set when stock adjustments have been performed for the line. When set, further stock adjustments will not be performed based on the line. + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockCountLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountLineId { get; set; } + + /// + /// External ID corresponding to StockCountLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountLineIdExternal { get; set; } + + /// + /// External ID corresponding to ApprovedBy_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("approvedBy_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ApprovedBy_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to StockCountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockCountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountIdExternal { get; set; } + + /// + /// External ID corresponding to StockId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approved")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Approved { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approvedBy_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ApprovedBy_EmployeeId { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countDoneUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? CountDoneUTC { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// Reference to Product + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityOnStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityOnStock { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockAdjustmentPerformed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? StockAdjustmentPerformed { get; set; } + + /// + /// Reference to Stock + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockId { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to StockCount + ///
The stock count will be resolved to the latest open stock count on the given storage and product. If there is no open stock count, a new stock count will be generated. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockCountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockCountLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStockCountLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockCountLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockCountLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStockCountLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockCountUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockCountId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockCountIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockCounts")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStockCounts { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockCountLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StockCountLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockId { get; set; } + + /// + /// External ID corresponding to StockId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("averageCostPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AverageCostPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("averageCostPriceFIFO")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AverageCostPriceFIFO { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lastCostPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? LastCostPrice { get; set; } + + /// + /// Reference to Product + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityMax")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityMax { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityMin")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityMin { get; set; } + + /// + /// Auto generated purchase order should increment quantity in multiples of this + ///
Type: decimal? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("quantityMOQ")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityMOQ { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantityOnOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityOnOrder { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_NextBatchSortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_NextBatchSortOrder { get; set; } + + /// + /// Reference to Storage + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStocks")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStocks { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("stockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockStorageTransferParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("fromStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromStorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ToStorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockTransactionDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockTransactionId { get; set; } + + /// + /// External ID corresponding to StockTransactionId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockTransactionIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to RegisteredBy_EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("registeredBy_EmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RegisteredBy_EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// External ID corresponding to Sys_ProductNoteLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_ProductNoteLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_ProductNoteLineIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("averageCostPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AverageCostPrice { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("averageCostPriceFIFO")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AverageCostPriceFIFO { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// This transactions represents a move from MovedFromStorageID to MovedToStorageID. + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("movedFromStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MovedFromStorageId { get; set; } + + /// + /// This transactions represents a move from MovedFromStorageID to MovedToStorageID. + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("movedToStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MovedToStorageId { get; set; } + + /// + /// Reference to ProductBatch + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productBatchId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductBatchId { get; set; } + + /// + /// Reference to Product + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("registeredBy_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RegisteredBy_EmployeeId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sequenceNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SequenceNumber { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceFIFO")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceFIFO { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceIncoming")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceIncoming { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceNotFIFO")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceNotFIFO { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sys_CostPriceNotStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sys_CostPriceNotStock { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to ProductNoteLine + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_ProductNoteLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_ProductNoteLineId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("totalStockQuantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? TotalStockQuantity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_StockTransactionOriginId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public StockTransactionOriginEnum? Enum_StockTransactionOriginId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Enum_StorageModeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public StorageModeEnum? Sys_Enum_StorageModeId { get; set; } + + /// + /// Reference to Storage + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockTransactions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStockTransactions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockTransactionGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockTransactionGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockTransactionId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum StockTransactionOriginEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"StockCount_Correction")] + StockCount_Correction = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Man_In_Out")] + Man_In_Out = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Reg_AutoF")] + Reg_AutoF = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Reg_Best")] + Reg_Best = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"SupplierInvoice")] + SupplierInvoice = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Hpc_In_Out")] + Hpc_In_Out = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductNote_Return")] + ProductNote_Return = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Reg_Vdc")] + Reg_Vdc = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductNote_In_Out")] + ProductNote_In_Out = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"OutgoingInvoice_In_Out")] + OutgoingInvoice_In_Out = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"Hpc_ProductNote_In_Out")] + Hpc_ProductNote_In_Out = 10, + + [System.Runtime.Serialization.EnumMember(Value = @"Reg_HTerm")] + Reg_HTerm = 11, + + [System.Runtime.Serialization.EnumMember(Value = @"ProductNote_Delete")] + ProductNote_Delete = 12, + + [System.Runtime.Serialization.EnumMember(Value = @"OutgoingInvoice_Delete")] + OutgoingInvoice_Delete = 13, + + [System.Runtime.Serialization.EnumMember(Value = @"Reg_Kontant")] + Reg_Kontant = 14, + + [System.Runtime.Serialization.EnumMember(Value = @"Slett_Kontant")] + Slett_Kontant = 15, + + [System.Runtime.Serialization.EnumMember(Value = @"Slett_Lager")] + Slett_Lager = 16, + + [System.Runtime.Serialization.EnumMember(Value = @"Stock_Transfer")] + Stock_Transfer = 17, + + [System.Runtime.Serialization.EnumMember(Value = @"Stock_AverageCostPriceUpd")] + Stock_AverageCostPriceUpd = 18, + + [System.Runtime.Serialization.EnumMember(Value = @"Telle_dato")] + Telle_dato = 19, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockTransactionUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockTransactionId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactionIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockTransactionIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStockTransactions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStockTransactions { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockTransferParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("fromStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromStorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toStorageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ToStorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("allowMoveOfNotAvailableQuantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AllowMoveOfNotAvailableQuantity { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPriceFromStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPriceFromStock { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPriceNotStock")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPriceNotStock { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("registeredBy_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RegisteredBy_EmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockUpdateAverageCostPriceParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("averageCostPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? AverageCostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StockUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StockId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StockIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStocks")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStocks { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageDepartmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageDepartmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageDepartmentId { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isDefaultStorage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsDefaultStorage { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Department + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Reference to Storage + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageDepartmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// External ID corresponding to Balance_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("balance_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Balance_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to ProfitAndLoss_LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("profitAndLoss_LedgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProfitAndLoss_LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to ResponsibleEmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("responsibleEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ResponsibleEmployeeIdExternal { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("balance_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Balance_LedgerAccountId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countInProgress")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? CountInProgress { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("profitAndLoss_LedgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProfitAndLoss_LedgerAccountId { get; set; } + + /// + /// Reference to Employee + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("responsibleEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ResponsibleEmployeeId { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageNumber { get; set; } + + /// + /// If set, this assignment number wil auto-map to the storage when importing supplier invoices. The assignment number can be virtual or an existing assignment number. This needs to be unique across storages. + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoice_VirtualAssignmentNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoice_VirtualAssignmentNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncToMobileDevice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncToMobileDevice { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStorages")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStorages { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stocks")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Stocks { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StockTransactions { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StorageDepartments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum StorageModeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"AvgUpdOnAdd")] + AvgUpdOnAdd = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"FIFO")] + FIFO = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageTransferDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageTransferId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageTransferId { get; set; } + + /// + /// External ID corresponding to StorageTransferId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageTransferIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageTransferIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId_From for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageId_FromExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageId_FromExternal { get; set; } + + /// + /// External ID corresponding to StorageId_To for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageId_ToExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageId_ToExternal { get; set; } + + /// + /// Reference to Product + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("regBy_EmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RegBy_EmployeeId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("registeredTimeUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? RegisteredTimeUTC { get; set; } + + /// + /// Reference to Storage + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId_From")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId_From { get; set; } + + /// + /// Reference to Storage + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId_To")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId_To { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_PostProcessNeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_PostProcessNeeded { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStorageTransfers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStorageTransfers { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageTransferUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageTransferId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageTransferId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageTransferIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageTransferIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStorageTransfers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStorageTransfers { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class StorageUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemStorages")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemStorages { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stocks")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Stocks { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("stockTransactions")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StockTransactions { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("storageDepartments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List StorageDepartments { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + /// + /// External ID corresponding to SupplierId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + /// + /// Reference to Country + ///
__When creating records:__ ___Mandatory___ + ///
Type: string (Max: 2) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("countryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CountryId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("organizationNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string OrganizationNumber { get; set; } + + /// + /// Type: string? (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierName { get; set; } + + /// + /// Type: int? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierNumber { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSuppliers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSuppliers { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Addresses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + } + + /// + /// Represents a supplier given a specific industry type. In Visma Contracting, this was termed "Grossist". + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerNumber { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("defaultUnknown_ProductSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DefaultUnknown_ProductSupplierIndustryTypeId { get; set; } + + /// + /// Reference to IndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isCustom")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsCustom { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isDefaultForIndustryType")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsDefaultForIndustryType { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("markupForNewDiscountGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? MarkupForNewDiscountGroups { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("organizationNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string OrganizationNumber { get; set; } + + /// + /// 0=CostPrice + ///
1=ListPrice + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceCalculationBase")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceCalculationBase { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceLastUpdateDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? PriceLastUpdateDate { get; set; } + + /// + /// Reference to Supplier + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_IsTemplateActivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_IsTemplateActivated { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_IsTemplateRow")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_IsTemplateRow { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("useOtherCurrency")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? UseOtherCurrency { get; set; } + + /// + /// Reference to PurchaseAgreement (directly updateable through Default_PurchaseAgreement) + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("default_PurchaseAgreementId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Default_PurchaseAgreementId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_PurchaseAgreement")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public PurchaseAgreementDto Default_PurchaseAgreement { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierIndustryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSupplierIndustryTypes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List PurchaseAgreements { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeFtpInfoDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeFtpInfoId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeFtpInfoId { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("autoImport")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AutoImport { get; set; } + + /// + /// Type: string? (Max: 200) + /// + + [System.Text.Json.Serialization.JsonPropertyName("directoryPath")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DirectoryPath { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("fileMask")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileMask { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ftpLastCheckedUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? FtpLastCheckedUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = 3___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("maxDownloadTryCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MaxDownloadTryCount { get; set; } + + /// + /// __When creating records:__ ___Default value = 3___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("maxImportTryCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? MaxImportTryCount { get; set; } + + /// + /// Type: string? (Max: 250) + /// + + [System.Text.Json.Serialization.JsonPropertyName("password")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Password { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("server")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Server { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_FileDownloadModeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public FileDownloadModeEnum? Enum_FileDownloadModeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ImportFormatId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ImportFormatEnum? Enum_ImportFormatId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_ImportTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public ImportTypeEnum? Enum_ImportTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeFtpInfoUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeFtpInfoId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeFtpInfoId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("number")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Number { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeProductDeactivateParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ignoreProductsUsedAfterUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? IgnoreProductsUsedAfterUTC { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ignoreProductsInUse")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IgnoreProductsInUse { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ignoreProductsInUseLast12Months")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IgnoreProductsInUseLast12Months { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ignoreProductsOnSupplierInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IgnoreProductsOnSupplierInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("ignoreProductsOnSupplierInvoiceLast12Months")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IgnoreProductsOnSupplierInvoiceLast12Months { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("simulationMode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SimulationMode { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeProductDeactivateResult + { + + [System.Text.Json.Serialization.JsonPropertyName("totalAffected")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TotalAffected { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("inactiveOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InactiveOnly { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Sys_Deactivated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("simulated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Simulated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeProductReactivateParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("resetInactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ResetInactive { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("simulationMode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SimulationMode { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeProductReactivateResult + { + + [System.Text.Json.Serialization.JsonPropertyName("totalAffected")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TotalAffected { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("inactiveReset")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InactiveReset { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("simulated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Simulated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierIndustryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("default_PurchaseAgreement")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public PurchaseAgreementUpsertResultDto Default_PurchaseAgreement { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierIndustryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSupplierIndustryTypes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("purchaseAgreements")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List PurchaseAgreements { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceAttachmentDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceAttachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceAttachmentId { get; set; } + + /// + /// External ID corresponding to AttachmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + /// + /// Reference to Attachment + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to SupplierInvoice + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceAttachmentUploadDto + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fileName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FileName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("internal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Internal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("revisionNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RevisionNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceAttachmentUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AttachmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("attachmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AttachmentIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Reference to IndustryType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("invoiceDate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? InvoiceDate { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("invoiceNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isCreditNote")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsCreditNote { get; set; } + + /// + /// The number of original lines on the supplier invoice. Used for verifying imported data. + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("lineCount")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LineCount { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("reviewed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Reviewed { get; set; } + + /// + /// Original sum from the supplier invoice. Used for verifying that we have transferred the complete invoice to Contracting. + ///
Type: decimal? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sum")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Sum { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierCustomerNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierCustomerNumberTxt { get; set; } + + /// + /// Reference to Supplier + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierNumberTxt { get; set; } + + /// + /// Set to true to allow retry of a failed sync. Typically, supplier invoices may be missing assignment references, have invalid line specification, missing default fallback products or similar preventing supplier invoice import. Set this bit to retry if conditions change. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("syncRetry")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? SyncRetry { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_PostProcessNeeded")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_PostProcessNeeded { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("voucherNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VoucherNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_SupplierInvoiceStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public SupplierInvoiceStatusEnum? Enum_SupplierInvoiceStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierInvoices")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSupplierInvoices { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNotes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNotes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List SupplierInvoiceAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List SupplierInvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceLineDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceLineId { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceLineId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceLineIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to CustomerId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerIdExternal { get; set; } + + /// + /// External ID corresponding to DepartmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentIdExternal { get; set; } + + /// + /// External ID corresponding to DimensionValueId_1 for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1External")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueId_1External { get; set; } + + /// + /// External ID corresponding to LedgerAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LedgerAccountIdExternal { get; set; } + + /// + /// External ID corresponding to ProductId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductIdExternal { get; set; } + + /// + /// External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to StorageId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierInvoiceId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentNumberTxt { get; set; } + + /// + /// Real cost price per item, including any discounts. + ///
Type: decimal? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + /// + /// Calculated value updated the supplier invoices based on our current agreement with the supplier. It is intended to use for comparison with CostPrice, to detect if we are indeed getting the agreed upon price. + ///
Type: decimal? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costPricePurchaseAgreement")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPricePurchaseAgreement { get; set; } + + /// + /// Reference to Customer + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("customerId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CustomerId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("customerNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CustomerNumberTxt { get; set; } + + /// + /// Reference to Department + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("departmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DepartmentId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("departmentNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DepartmentNumberTxt { get; set; } + + /// + /// Reference to DimensionValue + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueId_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DimensionValueId_1 { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("dimensionValueTxt_1")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DimensionValueTxt_1 { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("doNotForwardInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? DoNotForwardInvoice { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fallbackValueUsed")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? FallbackValueUsed { get; set; } + + /// + /// Reference to LedgerAccount + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LedgerAccountId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("ledgerAccountNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LedgerAccountNumberTxt { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("lineNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? LineNumber { get; set; } + + /// + /// Reference to Product + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductId { get; set; } + + /// + /// Type: string? (Max: 250) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductName { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumberTxt { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("productSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductSupplierIndustryTypeId { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectAccountId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectAccountNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectAccountNumberTxt { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("sortOrder")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SortOrder { get; set; } + + /// + /// Reference to Storage + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("storageId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? StorageId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("storageNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string StorageNumberTxt { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("vatRateTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VatRateTxt { get; set; } + + /// + /// Reference to SupplierInvoice + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierInvoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSupplierInvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceLineGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceLineGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceLineId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceLineUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLineIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceLineIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierInvoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSupplierInvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceProductMatchDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceProductMatchId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceProductMatchId { get; set; } + + /// + /// External ID corresponding to IndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("industryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + /// + /// External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to Target_ProductSupplierIndustryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("target_ProductSupplierIndustryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Target_ProductSupplierIndustryTypeIdExternal { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("doNotForwardInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? DoNotForwardInvoice { get; set; } + + /// + /// Reference to IndustryType + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("industryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? IndustryTypeId { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("productNumberTxt")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProductNumberTxt { get; set; } + + /// + /// Reference to Supplier + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + /// + /// Reference to SupplierIndustryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("supplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierIndustryTypeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("target_ProductName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Target_ProductName { get; set; } + + /// + /// Reference to ProductSupplierIndustryType + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("target_ProductSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Target_ProductSupplierIndustryTypeId { get; set; } + + /// + /// Reference to VATRate + ///
Type: byte? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceProductMatchUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceProductMatchId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceProductMatchId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceReverseParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("voucherNo")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VoucherNo { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceReverseResult + { + + [System.Text.Json.Serialization.JsonPropertyName("productNoteId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProductNoteId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum SupplierInvoiceStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Registered")] + Registered = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Approved")] + Approved = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Journaled")] + Journaled = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Historic")] + Historic = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Deleted")] + Deleted = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierInvoiceUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierInvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierInvoiceIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSupplierInvoices")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSupplierInvoices { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNotes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ProductNotes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceAttachments")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List SupplierInvoiceAttachments { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierInvoiceLines")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List SupplierInvoiceLines { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SupplierUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SupplierId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("supplierIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SupplierIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemSuppliers")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemSuppliers { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("addresses")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Addresses { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum SyncStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"TransferPending")] + TransferPending = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"TransferStarted")] + TransferStarted = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"TransferCompleted")] + TransferCompleted = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"SaveCompleted")] + SaveCompleted = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"SaveFailed")] + SaveFailed = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"SaveAborted")] + SaveAborted = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"TranferFailed")] + TranferFailed = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"TranferAborted")] + TranferAborted = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SystemNotificationDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("systemNotificationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SystemNotificationId { get; set; } + + /// + /// Type: string? (Max: 500) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("detailDescriptionURL")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DetailDescriptionURL { get; set; } + + /// + /// Type: string? (Max: 500) + /// + + [System.Text.Json.Serialization.JsonPropertyName("entityNavigationURL")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EntityNavigationURL { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isDone")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsDone { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isImportant")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsImportant { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isReadByUser")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsReadByUser { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isTask")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsTask { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("message")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Message { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("showFromUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ShowFromUTC { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("showToUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? ShowToUTC { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("title")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Title { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_NotificationTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public NotificationTypeEnum? Enum_NotificationTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class SystemNotificationUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("systemNotificationId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? SystemNotificationId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class TeamDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("teamId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TeamId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 50) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: int? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("teamNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TeamNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("teamEmployees")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List TeamEmployees { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class TeamEmployeeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("teamEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TeamEmployeeId { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to Team + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("teamId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TeamId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class TeamEmployeeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("teamEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TeamEmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class TeamUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("teamId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? TeamId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("teamEmployees")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List TeamEmployees { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum TextEncodingEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"UTF8")] + UTF8 = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"UTF8_BOM")] + UTF8_BOM = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"UTF16")] + UTF16 = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"UTF16_BOM")] + UTF16_BOM = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"UTF16_BE")] + UTF16_BE = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"UTF16_BE_BOM")] + UTF16_BE_BOM = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Windows_1252")] + Windows_1252 = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"ISO_8859_1")] + ISO_8859_1 = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"Latin1")] + Latin1 = 8, + + [System.Runtime.Serialization.EnumMember(Value = @"ASCII")] + ASCII = 9, + + [System.Runtime.Serialization.EnumMember(Value = @"CP_850")] + CP_850 = 10, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum TimeZoneEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"UTC")] + UTC = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"WesternEurope")] + WesternEurope = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class TokenDto + { + + [System.Text.Json.Serialization.JsonPropertyName("token")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Token { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class TokenResponseDto + { + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("token")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Token { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UpdateOwnProfileCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("firstName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string FirstName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("lastName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string LastName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("defaultLanguage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string DefaultLanguage { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UpdateSyncRequestedStatusToCacheRequest + { + + [System.Text.Json.Serialization.JsonPropertyName("integrationName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string IntegrationName { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UpdateUserCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("userId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isInactive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsInactive { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isClientAdmin")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsClientAdmin { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("isPayrollUser")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsPayrollUser { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UpdateUserResult + { + + [System.Text.Json.Serialization.JsonPropertyName("id")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Id { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("textId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string TextId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UpsertCustomInvoiceLineCommand + { + + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? InvoiceLineId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineCode")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineCode { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("invoiceLineText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string InvoiceLineText { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("quantityInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? QuantityInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("costPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CostPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("salesPriceInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SalesPriceInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("surchargePercentInvoice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercentInvoice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("listPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ListPrice { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("customerPrice")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? CustomerPrice { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UserCommandDto + { + + [System.Text.Json.Serialization.JsonPropertyName("isClientWide")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsClientWide { get; set; } + + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userCommandId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserCommandId { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("context")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Context { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("cwUserId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CwUserId { get; set; } + + /// + /// Type: string? (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("parameter")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Parameter { get; set; } + + /// + /// Type: string? (Max: 50) + /// + + [System.Text.Json.Serialization.JsonPropertyName("shortCutKey")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ShortCutKey { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("toolbarIcon")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ToolbarIcon { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_CommandId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public CommandEnum? Enum_CommandId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UserCommandUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userCommandId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserCommandId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + } + + /// + /// Auth.Write:ClientAdmin + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UserRoleDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userRoleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserRoleId { get; set; } + + /// + /// External ID corresponding to UserRoleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("userRoleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserRoleIdExternal { get; set; } + + /// + /// External ID corresponding to RoleId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("roleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string RoleIdExternal { get; set; } + + /// + /// Reference to Role + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("roleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? RoleId { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to User + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("userId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemUserRoles")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemUserRoles { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class UserRoleUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userRoleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? UserRoleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("userRoleIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UserRoleIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemUserRoles")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemUserRoles { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class VATRateDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("vATRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VATRateId { get; set; } + + /// + /// External ID corresponding to VATRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("vATRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VATRateIdExternal { get; set; } + + /// + /// Type: string? (Max: 10) + /// + + [System.Text.Json.Serialization.JsonPropertyName("code")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Code { get; set; } + + /// + /// Type: int? + /// + + [System.Text.Json.Serialization.JsonPropertyName("defaultUnknown_ProductSupplierIndustryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? DefaultUnknown_ProductSupplierIndustryTypeId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("ratePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? RatePercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemVATRates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemVATRates { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class VATRateGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class VATRateGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("vatRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VatRateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class VATRateUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? VatRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("vatRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string VatRateIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemVATRates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemVATRates { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + /// + /// External ID corresponding to WageCodeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + /// + /// External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Cost_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to CostSurcharge_ProjectAccountId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("costSurcharge_ProjectAccountIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string CostSurcharge_ProjectAccountIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to WageGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupIdExternal { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("approveRequired")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ApproveRequired { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentUpdate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? AssignmentUpdate { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("cost_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Cost_ProjectAccountId { get; set; } + + /// + /// Reference to ProjectAccount + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("costSurcharge_ProjectAccountId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? CostSurcharge_ProjectAccountId { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("fieldsolutionServiceExport")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? FieldsolutionServiceExport { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("isWorkTime")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? IsWorkTime { get; set; } + + /// + /// __When creating records:__ ___Default value = true___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("payrollExport")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PayrollExport { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("pieceworkActive")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PieceworkActive { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("priceOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? PriceOnly { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("quantityOnly")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? QuantityOnly { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("surchargePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? SurchargePercent { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeName { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeNumber { get; set; } + + /// + /// Reference to WageCodeReportCategory + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + /// + /// Reference to WageGroup + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageRatePercent")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? WageRatePercent { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_PieceworkTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PieceworkTypeEnum? Enum_PieceworkTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_WageCodeInvoiceRuleId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public WageCodeInvoiceRuleEnum? Enum_WageCodeInvoiceRuleId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_WageCodeTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public WageCodeTypeEnum? Enum_WageCodeTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageCodes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum WageCodeInvoiceRuleEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Invoice")] + Invoice = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"NoInvoicing")] + NoInvoicing = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"InvoiceOnIndependentAgreement")] + InvoiceOnIndependentAgreement = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodePreProcessDto + { + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("reportText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ReportText { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryNumber { get; set; } + + /// + /// Reference to WageCodeReportCategoryType + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeReportCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageCodeReportCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryPreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryNumber { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryTypeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + /// + /// External ID corresponding to WageCodeReportCategoryTypeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryTypeIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 100) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: string? (Max: 100) + /// + + [System.Text.Json.Serialization.JsonPropertyName("reportText")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ReportText { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeReportCategoryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageCodeReportCategoryTypes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List WageCodeReportCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryTypeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryTypeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryTypeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryTypeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryTypeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryTypeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeReportCategoryTypes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageCodeReportCategoryTypes { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List WageCodeReportCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeReportCategoryUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeReportCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeReportCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeReportCategoryIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodeReportCategories")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageCodeReportCategories { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum WageCodeTypeEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotSet")] + NotSet = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"OrdinaryWage")] + OrdinaryWage = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Overtime")] + Overtime = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"VariousExtra")] + VariousExtra = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"CarExpenses")] + CarExpenses = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"TravelExpenses")] + TravelExpenses = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Diet")] + Diet = 6, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageCodeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageCodes")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageCodes { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageGroupDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + /// + /// External ID corresponding to WageGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupIdExternal { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: Name + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageGroupName")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupName { get; set; } + + /// + /// Type: short? + ///
Validation: PositiveNumber + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageGroupNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupNumber { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageGroups { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageGroupGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageGroupGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageGroupUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageGroups")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageGroups { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WagePeriodDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + /// + /// External ID corresponding to WagePeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WagePeriodIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectPeriodId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectPeriodIdExternal { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: string (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("description")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Description { get; set; } + + /// + /// Type: DateTime? + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("endDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? EndDateUTC { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: byte + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("periodNumber")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PeriodNumber { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("periodYear")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? PeriodYear { get; set; } + + /// + /// __When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodFromTimeRegistration")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? ProjectPeriodFromTimeRegistration { get; set; } + + /// + /// Reference to ProjectPeriod + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectPeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectPeriodId { get; set; } + + /// + /// __When creating records:__ ___Mandatory___ + ///
Type: DateTime + ///
Validation: Unvalidated + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("startDateUTC")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.DateTimeOffset? StartDateUTC { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("enum_WagePeriodStatusId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public WagePeriodStatusEnum? Enum_WagePeriodStatusId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWagePeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWagePeriods { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WagePeriodGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WagePeriodGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum WagePeriodStatusEnum + { + + [System.Runtime.Serialization.EnumMember(Value = @"Waiting")] + Waiting = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Registered")] + Registered = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"ReadyForTransfer")] + ReadyForTransfer = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Transferred")] + Transferred = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Calculated")] + Calculated = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Completed")] + Completed = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WagePeriodUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WagePeriodId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wagePeriodIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WagePeriodIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWagePeriods")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWagePeriods { get; set; } + + } + + /// + /// If used, replaces rate + social cost as cost on projects + /// + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateId { get; set; } + + /// + /// External ID corresponding to WageRateId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateIdExternal { get; set; } + + /// + /// External ID corresponding to JobCategoryId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string JobCategoryIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// External ID corresponding to WageGroupId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageGroupIdExternal { get; set; } + + /// + /// Type: string? (Max: 200) + ///
Validation: MultilineText + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("comment")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Comment { get; set; } + + /// + /// Reference to JobCategory + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectCost")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? ProjectCost { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + /// + /// __When creating records:__ ___Default value = 0___ + ///
Type: decimal + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("rate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Rate { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to WageGroup + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageRates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageRates { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateEmployeeDto + { + /// + /// Workaround for setting explicit null in fields even if the fields are missing from the input JSON. + ///
This can be an issue due to lack of control of generated accessor classes from e.g. NSwag. + ///
This is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value + ///
in the field. + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("_FieldsContainingNull")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List _FieldsContainingNull { get; set; } + + /// + /// Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted. + /// + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + /// + /// __Primary key__ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateEmployeeId { get; set; } + + /// + /// External ID corresponding to WageRateEmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateEmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to AssignmentId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("assignmentIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string AssignmentIdExternal { get; set; } + + /// + /// External ID corresponding to EmployeeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("employeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string EmployeeIdExternal { get; set; } + + /// + /// External ID corresponding to Next_WageCodeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("next_WageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Next_WageCodeIdExternal { get; set; } + + /// + /// External ID corresponding to ProjectId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("projectIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ProjectIdExternal { get; set; } + + /// + /// External ID corresponding to WageCodeId for the current ExternalSystem + /// + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageCodeIdExternal { get; set; } + + /// + /// Reference to Assignment + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("assignmentId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? AssignmentId { get; set; } + + /// + /// Reference to Employee + ///
__When creating records:__ ___Mandatory___ + ///
Type: int + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + /// + /// Reference to WageCode + ///
Type: short? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("next_WageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Next_WageCodeId { get; set; } + + /// + /// Reference to Project + ///
Type: int? + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Quantity { get; set; } + + /// + /// Type: decimal? + /// + + [System.Text.Json.Serialization.JsonPropertyName("rate")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? Rate { get; set; } + + /// + /// The row is deactivated (soft-deleted). + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Deactivated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Deactivated { get; set; } + + /// + /// The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Historic")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Historic { get; set; } + + /// + /// The row is incomplete, and should be disregarded in business logic and outgoing integrations. + ///
__When creating records:__ ___Default value = false___ + ///
Type: bool + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("sys_Incomplete")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Sys_Incomplete { get; set; } + + /// + /// Reference to WageCode + ///
__When creating records:__ ___Mandatory___ + ///
Type: short + ///
+ + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageRateEmployees")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageRateEmployees { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateEmployeeGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateEmployeeGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateEmployeeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateEmployeePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateEmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageCodeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("employeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? EmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("next_WageCodeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Next_WageCodeId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateEmployeeUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateEmployeeId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateEmployeeIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateEmployeeIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageRateEmployees")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageRateEmployees { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateGetNotSyncedParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("top")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? Top { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("fromId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? FromId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ExternalSystemId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("toRowVersion")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public long? ToRowVersion { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateGetNotSyncedResult + { + + [System.Text.Json.Serialization.JsonPropertyName("wageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRatePreProcessParameters + { + + [System.Text.Json.Serialization.JsonPropertyName("wageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("jobCategoryId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? JobCategoryId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("projectId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? ProjectId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageGroupId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageGroupId { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WageRateUpsertResultDto + { + + [System.Text.Json.Serialization.JsonPropertyName("performedAction")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public PerformedAction? PerformedAction { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wasCreated")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? WasCreated { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("success")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public bool? Success { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("errorMessage")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string ErrorMessage { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("validationErrors")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.IDictionary ValidationErrors { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("upsertTag")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string UpsertTag { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateId")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public int? WageRateId { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("wageRateIdExternal")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string WageRateIdExternal { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("sys_RowState")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public RowStateEnum? Sys_RowState { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("externalSystemWageRates")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List ExternalSystemWageRates { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class WidgetData + { + + [System.Text.Json.Serialization.JsonPropertyName("name")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string Name { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("subTitle")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public string SubTitle { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("keyValue")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public decimal? KeyValue { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("data")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public DataValue Data { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("keys")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List Keys { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("values")] + + [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault)] + public System.Collections.Generic.List> Values { get; set; } + + } + + + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ApiException : System.Exception + { + public int StatusCode { get; private set; } + + public string Response { get; private set; } + + public System.Collections.Generic.IReadOnlyDictionary> Headers { get; private set; } + + public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Exception innerException) + : base(message + "\n\nStatus: " + statusCode + "\nResponse: \n" + ((response == null) ? "(null)" : response.Substring(0, response.Length >= 512 ? 512 : response.Length)), innerException) + { + StatusCode = statusCode; + Response = response; + Headers = headers; + } + + public override string ToString() + { + return string.Format("HTTP Response: \n\n{0}\n\n{1}", Response, base.ToString()); + } + } + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ApiException : ApiException + { + public TResult Result { get; private set; } + + public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, TResult result, System.Exception innerException) + : base(message, statusCode, response, headers, innerException) + { + Result = result; + } + } + +} + +#pragma warning restore 108 +#pragma warning restore 114 +#pragma warning restore 472 +#pragma warning restore 612 +#pragma warning restore 1573 +#pragma warning restore 1591 +#pragma warning restore 8073 +#pragma warning restore 3016 +#pragma warning restore 8603 +#pragma warning restore 8604 \ No newline at end of file diff --git a/Examples/ReadAndWrite/WriteApi/ContractingWorks.json b/Examples/ReadAndWrite/WriteApi/ContractingWorks.json new file mode 100644 index 0000000..fd51509 --- /dev/null +++ b/Examples/ReadAndWrite/WriteApi/ContractingWorks.json @@ -0,0 +1,55916 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Contracting Works Api v3", + "description": "Server build number: 20230815.1", + "version": "v3" + }, + "paths": { + "/v3/client/{clientid}/Address/Upsert": { + "post": { + "tags": [ + "Address" + ], + "summary": "Create or update a list of addresses. (Auth)", + "operationId": "Upsert", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Address/GetNotSynced": { + "post": { + "tags": [ + "Address" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/MaxCustomerIdForChangedCustomerAddressContactAggregates": { + "get": { + "tags": [ + "Admin" + ], + "summary": " (Auth)", + "operationId": "MaxCustomerIdForChangedCustomerAddressContactAggregates", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaxRowVersionDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/GetCustomerIdsForChangedCustomerAddressContactAggregates": { + "get": { + "tags": [ + "Admin" + ], + "summary": " (Auth)", + "operationId": "GetCustomerIdsForChangedCustomerAddressContactAggregates", + "parameters": [ + { + "name": "rowVersion", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "atMost", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "toRowVersion", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetCustomerIdsForChangedCustomerAddressContactAggregatesResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/GetMaxRowversionForChangedAssignmentDimensionUseAggregates": { + "get": { + "tags": [ + "Admin" + ], + "summary": " (Auth)", + "operationId": "GetMaxRowversionForChangedAssignmentDimensionUseAggregates", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaxRowVersionDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/GetAssignmentIdsForChangedAssignmentDimensionUseAggregates": { + "get": { + "tags": [ + "Admin" + ], + "summary": " (Auth)", + "operationId": "GetAssignmentIdsForChangedAssignmentDimensionUseAggregates", + "parameters": [ + { + "name": "rowVersion", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "atMost", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "toRowVersion", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetAssignmentIdsForChangedAssignmentDimensionUseAggregatesResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/DailyMaintenance": { + "post": { + "tags": [ + "Admin" + ], + "summary": "Performs daily maintenance on the client (Auth roles: cwdeveloper, cwmaintenance)", + "operationId": "DailyMaintenance", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DailyMaintenanceRequestDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DailyMaintenanceRequestDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DailyMaintenanceRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DailyMaintenanceResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/DeleteOldHistory": { + "post": { + "tags": [ + "Admin" + ], + "summary": "Removes history rows up to a specific date. (Auth roles: cwdeveloper, cwmaintenance)", + "operationId": "DeleteOldHistory", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteOldHistoryRequestDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DeleteOldHistoryRequestDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DeleteOldHistoryRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteOldHistoryResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/TransferFeaturesFromAdmin": { + "post": { + "tags": [ + "Admin" + ], + "summary": "Transfer feature information from admin to client db.\r\nInformation in client db will be lost, and replaced with admin db information about features. (Auth)", + "operationId": "TransferFeaturesFromAdmin", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/LastRowVersions": { + "post": { + "tags": [ + "Admin" + ], + "summary": "Request last row version per table name. Note; the casing and spelling\r\nof table name has to be correct. Customer works, customer or Customers will not. (Auth)", + "operationId": "LastRowVersions", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LastRowVersionsRequestDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/LastRowVersionsRequestDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LastRowVersionsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LastRowVersionsResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Admin/GetErrorMessages": { + "post": { + "tags": [ + "Admin" + ], + "summary": " (Auth)", + "operationId": "GetErrorMessages", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AdminGetRowErrorMessagesParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AdminGetRowErrorMessagesParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AdminGetRowErrorMessagesParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdminGetRowErrorMessagesResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Appointment/Upsert": { + "post": { + "tags": [ + "Appointment" + ], + "summary": "Create or update a list of appointments. (Auth)", + "operationId": "Upsert2", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AppointmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AppointmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AppointmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AppointmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AppointmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Appointment/GetNotSynced": { + "post": { + "tags": [ + "Appointment" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppointmentGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AppointmentGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AppointmentGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AppointmentGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/RecalculateServices": { + "post": { + "tags": [ + "Assignment" + ], + "summary": "Recalculate services for specific assignment (Auth)", + "operationId": "RecalculateServices", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentServiceDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentServiceDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentServiceDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/Recalculate": { + "post": { + "tags": [ + "Assignment" + ], + "summary": "Recalculate product note prices for specific assignment (Auth)", + "operationId": "Recalculate", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecalculateAssignmentDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/RecalculateAssignmentDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RecalculateAssignmentDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecalculateAssignmentDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/Upsert": { + "post": { + "tags": [ + "Assignment" + ], + "summary": "Create or update a list of assignments. (Auth)", + "operationId": "Upsert3", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/PrepareAttachmentUpload": { + "post": { + "tags": [ + "Assignment" + ], + "summary": "Accepts AssignmentId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "Assignment" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/Copy": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "Copy", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCopyParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCopyParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCopyParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCopyResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/CopyDimensionsFromProject": { + "post": { + "tags": [ + "Assignment" + ], + "summary": "Copying dimensions to a single assignment from its project (Auth)", + "description": "Intended for internal use and is subject to change without notification", + "operationId": "CopyDimensionsFromProject", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCopyDimensionsFromProjectParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCopyDimensionsFromProjectParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCopyDimensionsFromProjectParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCopyDimensionsFromProjectResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/GetErrorCount": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "GetErrorCount", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetErrorCountParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetErrorCountParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetErrorCountParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentGetErrorCountResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/GetNotSynced": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced3", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/ResetHistoric": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "ResetHistoric", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentResetHistoricParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentResetHistoricParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentResetHistoricParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/GetNotSyncedParticipant": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedParticipant", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentParticipantGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentParticipantGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentParticipantGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentParticipantGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/GetNotSyncedContact": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedContact", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/GetNotSyncedAddress": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedAddress", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/Report_MonthlySummary": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "Report_MonthlySummary", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentReportMonthlySummaryParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentReportMonthlySummaryParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentReportMonthlySummaryParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentReportMonthlySummaryResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/Report_DimensionSummary": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "Report_DimensionSummary", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentReportDimensionSummaryParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentReportDimensionSummaryParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentReportDimensionSummaryParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentReportDimensionSummaryResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/ProjectReport": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "ProjectReport", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentProjectReportParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentProjectReportParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentProjectReportParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentProjectReportResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/GetDefaults": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "GetDefaults", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetDefaultsParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetDefaultsParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentGetDefaultsParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentGetDefaultsResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Assignment/InvoiceReserveAdjustment": { + "post": { + "tags": [ + "Assignment" + ], + "summary": " (Auth)", + "operationId": "InvoiceReserveAdjustment", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentInvoiceReserveAdjustmentParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentInvoiceReserveAdjustmentParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentInvoiceReserveAdjustmentParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/AssignmentCategory/Upsert": { + "post": { + "tags": [ + "AssignmentCategory" + ], + "summary": "Create or update a list of assignmentCategories. (Auth)", + "operationId": "Upsert4", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/AssignmentCategory/GetNotSynced": { + "post": { + "tags": [ + "AssignmentCategory" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced4", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCategoryGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCategoryGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCategoryGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentCategoryGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/AssignmentCategory/PreProcess": { + "post": { + "tags": [ + "AssignmentCategory" + ], + "summary": "Preprocess/validate AssignmentCategory record before saving. (Auth)", + "operationId": "PreProcess", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified AssignmentCategory with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCategoryPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCategoryPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssignmentCategoryPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/AssignmentMOM/Upsert": { + "post": { + "tags": [ + "AssignmentMOM" + ], + "summary": "Create or update a list of assignmentMOMs. (Auth)", + "operationId": "Upsert5", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentMOMDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentMOMDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentMOMDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentMOMUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssignmentMOMUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Attachment/PrepareAttachmentDownload": { + "post": { + "tags": [ + "Attachment" + ], + "summary": "Creates SAS access token for attachment (Auth)", + "operationId": "PrepareAttachmentDownload", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Attachment/Delete": { + "delete": { + "tags": [ + "Attachment" + ], + "summary": "Attachment hard delete (Auth)", + "operationId": "Delete", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDownloadDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Attachment/Upsert": { + "post": { + "tags": [ + "Attachment" + ], + "summary": "Create or update a list of attachments. (Auth)", + "operationId": "Upsert6", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Attachment/GetNotSynced": { + "post": { + "tags": [ + "Attachment" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced5", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/AttachmentCategory/Upsert": { + "post": { + "tags": [ + "AttachmentCategory" + ], + "summary": "Create or update a list of attachmentCategories. (Auth)", + "operationId": "Upsert7", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/BoligmappaAttachment/Upsert": { + "post": { + "tags": [ + "BoligmappaAttachment" + ], + "summary": "Create or update a list of boligmappaAttachments. (Auth)", + "operationId": "Upsert8", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BoligmappaAttachmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BoligmappaAttachmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BoligmappaAttachmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BoligmappaAttachmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BoligmappaAttachmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/BoligmappaAttachment/GetNotSyncedAttachment": { + "post": { + "tags": [ + "BoligmappaAttachment" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedAttachment", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttachmentGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Budget/Upsert": { + "post": { + "tags": [ + "Budget" + ], + "summary": "Create or update a list of budgets. (Auth)", + "operationId": "Upsert9", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/BudgetLine/Upsert": { + "post": { + "tags": [ + "BudgetLine" + ], + "summary": "Create or update a list of budgetLines. (Auth)", + "operationId": "Upsert10", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetLineDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetLineDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetLineDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetLineUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetLineUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/BudgetScenario/Upsert": { + "post": { + "tags": [ + "BudgetScenario" + ], + "summary": "Create or update a list of budgetScenarios. (Auth)", + "operationId": "Upsert11", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetScenarioDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetScenarioDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetScenarioDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetScenarioUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BudgetScenarioUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Contact/Upsert": { + "post": { + "tags": [ + "Contact" + ], + "summary": "Create or update a list of contacts. (Auth)", + "operationId": "Upsert12", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Contact/GetNotSynced": { + "post": { + "tags": [ + "Contact" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced6", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ContactMessage/Upsert": { + "post": { + "tags": [ + "ContactMessage" + ], + "summary": "Create or update a list of contactMessages. (Auth)", + "operationId": "Upsert13", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactMessageDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactMessageDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactMessageDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactMessageUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactMessageUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Country/Upsert": { + "post": { + "tags": [ + "Country" + ], + "summary": "Create or update a list of countries. (Auth)", + "operationId": "Upsert14", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomDashboard/GetDashboard": { + "post": { + "tags": [ + "CustomDashboard" + ], + "summary": " (Auth)", + "operationId": "GetDashboard", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DashboardCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DashboardCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DashboardCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DashboardResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Customer/Upsert": { + "post": { + "tags": [ + "Customer" + ], + "summary": "Create or update a list of customers. (Auth)", + "operationId": "Upsert15", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Customer/PrepareAttachmentUpload": { + "post": { + "tags": [ + "Customer" + ], + "summary": "Accepts CustomerId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload2", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CustomerAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CustomerAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Customer/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "Customer" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById2", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Customer/GetNotSynced": { + "post": { + "tags": [ + "Customer" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced7", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CustomerGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CustomerGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Customer/GetNotSyncedAddress": { + "post": { + "tags": [ + "Customer" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedAddress2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Customer/GetNotSyncedContact": { + "post": { + "tags": [ + "Customer" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedContact2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/SendInvoice": { + "post": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "SendInvoice", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendInvoiceCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SendInvoiceCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SendInvoiceCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendInvoiceResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/GetInvoice": { + "get": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "GetInvoice", + "parameters": [ + { + "name": "InvoiceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInvoiceResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/GetInvoiceLines": { + "get": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "GetInvoiceLines", + "parameters": [ + { + "name": "InvoiceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SessionId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLine" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/CancelInvoice": { + "put": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "CancelInvoice", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceCancelResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/SaveInvoice": { + "post": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "SaveInvoice", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveInvoiceCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SaveInvoiceCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SaveInvoiceCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveInvoiceResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/SetInvoiceStatus": { + "put": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "SetInvoiceStatus", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceStatusCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceStatusCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceStatusCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceStatusResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/UpsertInvoiceLine": { + "post": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "UpsertInvoiceLine", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertCustomInvoiceLineCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UpsertCustomInvoiceLineCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpsertCustomInvoiceLineCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomInvoiceLineDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/ImportInvoice": { + "post": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "ImportInvoice", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportInvoiceCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ImportInvoiceCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ImportInvoiceCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/CreateCreditNote": { + "post": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "CreateCreditNote", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCreditNoteCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateCreditNoteCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CreateCreditNoteCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/InsertInvoiceLines_Session": { + "post": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "InsertInvoiceLines_Session", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "dev-client-tom" + } + }, + { + "name": "sessionId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "sortOrder", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InsertInvoiceLines_SessionDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InsertInvoiceLines_SessionDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InsertInvoiceLines_SessionDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": {} + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomInvoice/DeleteInvoiceLine": { + "delete": { + "tags": [ + "CustomInvoice" + ], + "summary": " (Auth)", + "operationId": "DeleteInvoiceLine", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInvoiceLineCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInvoiceLineCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DeleteInvoiceLineCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomService/Upsert": { + "post": { + "tags": [ + "CustomService" + ], + "summary": "Create or update a list of services. (Auth)", + "operationId": "Upsert16", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/CustomService/ReprocessErrors": { + "post": { + "tags": [ + "CustomService" + ], + "summary": " (Auth)", + "operationId": "ReprocessErrors", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReprocessErrorsCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ReprocessErrorsCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReprocessErrorsCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Department/Upsert": { + "post": { + "tags": [ + "Department" + ], + "summary": "Create or update a list of departments. (Auth)", + "operationId": "Upsert17", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Department/GetNotSynced": { + "post": { + "tags": [ + "Department" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced8", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DepartmentGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DepartmentGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DepartmentGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Department/PreProcess": { + "post": { + "tags": [ + "Department" + ], + "summary": "Preprocess/validate Department record before saving. (Auth)", + "operationId": "PreProcess2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified Department with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DepartmentPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DepartmentPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DepartmentPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetDimensionValues": { + "get": { + "tags": [ + "Dimension" + ], + "summary": "Get all dimension values (Auth)", + "operationId": "GetDimensionValues", + "parameters": [ + { + "name": "dimensionId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueAgGridResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetDimensionsForEntity": { + "get": { + "tags": [ + "Dimension" + ], + "summary": "Get dimensions with activity information for specific assignment or project (Auth)", + "operationId": "GetDimensionsForEntity", + "parameters": [ + { + "name": "assignmentId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "projectId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dimensionId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dimensionFilter", + "in": "query", + "schema": { + "$ref": "#/components/schemas/DimensionFilter" + } + }, + { + "name": "onlyInvoiceable", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionForEntityResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetDimensionValuesForEntity": { + "get": { + "tags": [ + "Dimension" + ], + "summary": "Get dimension values with activity information for specific assignment or project and specific dimension (Auth)", + "operationId": "GetDimensionValuesForEntity", + "parameters": [ + { + "name": "assignmentId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "projectId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dimensionValueId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dimensionId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueForEntityResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetDimensionsMetadata": { + "get": { + "tags": [ + "Dimension" + ], + "summary": "Get dimension column meta data for specific entity type\r\nSupported entity types: Service, ProductNoteLine and Invoice (Auth)", + "operationId": "GetDimensionsMetadata", + "parameters": [ + { + "name": "assignmentId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityName", + "in": "query", + "schema": { + "$ref": "#/components/schemas/EntityNameForDimension" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetDimensionsMetaDataResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/Upsert": { + "post": { + "tags": [ + "Dimension" + ], + "summary": "Create or update a list of dimensions. (Auth)", + "operationId": "Upsert18", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomDimensionDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomDimensionDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomDimensionDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUpsertResultDto" + } + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUpsertResultDto" + } + } + } + } + }, + "422": { + "description": "Client Error", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/Copy": { + "post": { + "tags": [ + "Dimension" + ], + "summary": " (Auth)", + "operationId": "Copy2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DimensionCopyParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DimensionCopyParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DimensionCopyParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionCopyResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetNotSynced": { + "post": { + "tags": [ + "Dimension" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced9", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DimensionGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DimensionGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DimensionGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetNotSyncedValue": { + "post": { + "tags": [ + "Dimension" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedValue", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Dimension/GetNotSyncedAssignmentDimensionValue": { + "post": { + "tags": [ + "Dimension" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedAssignmentDimensionValue", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedAssignmentDimensionParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedAssignmentDimensionParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedAssignmentDimensionParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueGetNotSyncedAssignmentDimensionResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/DimensionUse/Upsert": { + "post": { + "tags": [ + "DimensionUse" + ], + "summary": "Create or update a list of dimensionUses. (Auth)", + "operationId": "Upsert19", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUseDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUseDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUseDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUseUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionUseUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/DimensionValueUse/Upsert": { + "post": { + "tags": [ + "DimensionValueUse" + ], + "summary": "Create or update a list of dimensionValueUses. (Auth)", + "operationId": "Upsert20", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueUseDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueUseDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueUseDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueUseUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DimensionValueUseUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/DiscountGroup/Upsert": { + "post": { + "tags": [ + "DiscountGroup" + ], + "summary": "Create or update a list of discountGroups. (Auth)", + "operationId": "Upsert21", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DiscountGroupDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DiscountGroupDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DiscountGroupDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DiscountGroupUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DiscountGroupUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Employee/Upsert": { + "post": { + "tags": [ + "Employee" + ], + "summary": "Create or update a list of employees. (Auth)", + "operationId": "Upsert22", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Employee/PrepareAttachmentUpload": { + "post": { + "tags": [ + "Employee" + ], + "summary": "Accepts EmployeeId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload3", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EmployeeAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Employee/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "Employee" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById3", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Employee/GetNotSynced": { + "post": { + "tags": [ + "Employee" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced10", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EmployeeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Employee/GetNotSyncedAddress": { + "post": { + "tags": [ + "Employee" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedAddress3", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/EmployeeInvoiceCategory/Upsert": { + "post": { + "tags": [ + "EmployeeInvoiceCategory" + ], + "summary": "Create or update a list of employeeInvoiceCategories. (Auth)", + "operationId": "Upsert23", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/EmployeeInvoiceCategory/GetNotSynced": { + "post": { + "tags": [ + "EmployeeInvoiceCategory" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced11", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/EmployeeInvoiceCategory/PreProcess": { + "post": { + "tags": [ + "EmployeeInvoiceCategory" + ], + "summary": "Preprocess/validate EmployeeInvoiceCategory record before saving. (Auth)", + "operationId": "PreProcess3", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified EmployeeInvoiceCategory with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EmployeeInvoiceCategoryPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/UpdateSyncRequestedStatusToCache": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": "This endpoint updates the status of syncs in the common cache (Auth)", + "operationId": "UpdateSyncRequestedStatusToCache", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSyncRequestedStatusToCacheRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSyncRequestedStatusToCacheRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdateSyncRequestedStatusToCacheRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/Upsert": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": "Create or update a list of externalSystems. (Auth)", + "operationId": "Upsert24", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/CheckAnySyncNeeded": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "CheckAnySyncNeeded", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemCheckAnySyncNeededParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemCheckAnySyncNeededParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemCheckAnySyncNeededParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemCheckAnySyncNeededResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/CheckSyncNeeded": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "CheckSyncNeeded", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemCheckSyncNeededParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemCheckSyncNeededParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemCheckSyncNeededParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemCheckSyncNeededResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/ConfigureSpeedyCraft": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "ConfigureSpeedyCraft", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemConfigureSpeedyCraftParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemConfigureSpeedyCraftParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemConfigureSpeedyCraftParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/ResetSyncFlag": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "ResetSyncFlag", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemResetSyncFlagParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemResetSyncFlagParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemResetSyncFlagParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/GetOrCreateExternalSystemID": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "GetOrCreateExternalSystemID", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetOrCreateExternalSystemIDParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetOrCreateExternalSystemIDParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetOrCreateExternalSystemIDParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemGetOrCreateExternalSystemIDResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/RequestSync": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "RequestSync", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemRequestSyncParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemRequestSyncParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemRequestSyncParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/GetSyncStatus": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "GetSyncStatus", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/GetSyncStatusAll": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "GetSyncStatusAll", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusAllParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusAllParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusAllParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSystemGetSyncStatusAllResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ExternalSystem/SyncAllRequested": { + "post": { + "tags": [ + "ExternalSystem" + ], + "summary": " (Auth)", + "operationId": "SyncAllRequested", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemSyncAllRequestedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemSyncAllRequestedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExternalSystemSyncAllRequestedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Feature/GetEnabledFeatures": { + "post": { + "tags": [ + "Feature" + ], + "summary": " (Auth)", + "operationId": "GetEnabledFeatures", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ImportFile/Upsert": { + "post": { + "tags": [ + "ImportFile" + ], + "summary": "Create or update a list of importFiles. (Auth)", + "operationId": "Upsert25", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportFileDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportFileDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportFileDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportFileUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportFileUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IndexRateGroup/Upsert": { + "post": { + "tags": [ + "IndexRateGroup" + ], + "summary": "Create or update a list of indexRateGroups. (Auth)", + "operationId": "Upsert26", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexRateGroupDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexRateGroupDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexRateGroupDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexRateGroupUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexRateGroupUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IndustryType/Upsert": { + "post": { + "tags": [ + "IndustryType" + ], + "summary": "Create or update a list of industryTypes. (Auth)", + "operationId": "Upsert27", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndustryTypeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndustryTypeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndustryTypeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndustryTypeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndustryTypeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IndustryType/GetNotSynced": { + "post": { + "tags": [ + "IndustryType" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced12", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IndustryTypeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/IndustryTypeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/IndustryTypeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndustryTypeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IndustryType/PreProcess": { + "post": { + "tags": [ + "IndustryType" + ], + "summary": "Preprocess/validate IndustryType record before saving. (Auth)", + "operationId": "PreProcess4", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified IndustryType with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IndustryTypePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/IndustryTypePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/IndustryTypePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IntegratedSystemConfig/Upsert": { + "post": { + "tags": [ + "IntegratedSystemConfig" + ], + "summary": "Create or update a list of integratedSystemConfigs. (Auth)", + "operationId": "Upsert28", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegratedSystemConfigDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegratedSystemConfigDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegratedSystemConfigDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegratedSystemConfigUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegratedSystemConfigUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Integration/ValidateToken": { + "post": { + "tags": [ + "Integration" + ], + "summary": "This endpoint is made for integration wizard and it will simulate integration token validation. \r\nIt is made only for testing purpose. Later we will add more functionality. (Auth)", + "operationId": "ValidateToken", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/TokenDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TokenDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenResponseDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Integration/Temp_SpeedycraftGetSkeletonIds": { + "post": { + "tags": [ + "Integration" + ], + "summary": "This endpoint is made for sc integration to fetch ids that need to be created in SC from CW\r\nIt is a temorary endpoint (Auth)", + "operationId": "Temp_SpeedycraftGetSkeletonIds", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationSpeedycraftGetSkeletonIdsToSyncParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationSpeedycraftGetSkeletonIdsToSyncParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/IntegrationSpeedycraftGetSkeletonIdsToSyncParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Integration/GetSyncEvents": { + "post": { + "tags": [ + "Integration" + ], + "summary": "This endpoint returns sync events requested for integration (Auth)", + "operationId": "GetSyncEvents", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationGetSyncEventsParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationGetSyncEventsParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/IntegrationGetSyncEventsParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationGetSyncEventsResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Integration/RemoveSyncEvents": { + "post": { + "tags": [ + "Integration" + ], + "summary": "This endpoint removes passed synced events (Auth)", + "operationId": "RemoveSyncEvents", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationRemoveSyncEventsParameters" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationRemoveSyncEventsParameters" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationRemoveSyncEventsParameters" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Integration/GetIntegrationSyncStatusFromCache": { + "post": { + "tags": [ + "Integration" + ], + "summary": "This endpoint returns the status of syncs from the common cache (Auth)", + "operationId": "GetIntegrationSyncStatusFromCache", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetIntegrationSyncStatusFromCacheRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/GetIntegrationSyncStatusFromCacheRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/GetIntegrationSyncStatusFromCacheRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IntegrationStatus/Upsert": { + "post": { + "tags": [ + "IntegrationStatus" + ], + "summary": "Create or update a list of integrationStatuses. (Auth)", + "operationId": "Upsert29", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IntegrationStatus/Incoming_MoveAndProcess": { + "post": { + "tags": [ + "IntegrationStatus" + ], + "summary": " (Auth)", + "operationId": "Incoming_MoveAndProcess", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IntegrationStatus_Incoming/Upsert": { + "post": { + "tags": [ + "IntegrationStatus_Incoming" + ], + "summary": "Create or update a list of integrationStatus_Incomings. (Auth)", + "operationId": "Upsert30", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatus_IncomingDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatus_IncomingDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatus_IncomingDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatus_IncomingUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatus_IncomingUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/IntegrationStatus_Incoming/Incoming_MoveAndProcess": { + "post": { + "tags": [ + "IntegrationStatus_Incoming" + ], + "summary": " (Auth)", + "operationId": "Incoming_MoveAndProcess2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationStatusIncomingMoveAndProcessResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/Upsert": { + "post": { + "tags": [ + "Invoice" + ], + "summary": "Create or update a list of invoices. (Auth)", + "operationId": "Upsert31", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/PrepareAttachmentUpload": { + "post": { + "tags": [ + "Invoice" + ], + "summary": "Accepts InvoiceId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload4", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "Invoice" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById4", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/CalculateTotals": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "CalculateTotals", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCalculateTotalsParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCalculateTotalsParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCalculateTotalsParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceCalculateTotalsResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/Cancel": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "Cancel", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceCancelResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/ExecuteDimensionInvoiceTemplate": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "ExecuteDimensionInvoiceTemplate", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteDimensionInvoiceTemplateParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteDimensionInvoiceTemplateParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteDimensionInvoiceTemplateParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceExecuteDimensionInvoiceTemplateResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/ExecuteInvoiceRule": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "ExecuteInvoiceRule", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceRuleParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceRuleParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceRuleParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceRuleResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/ExecuteInvoiceTemplate": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "ExecuteInvoiceTemplate", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceTemplateParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceTemplateParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceTemplateParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceExecuteInvoiceTemplateResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/GetNotSynced": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced13", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/UpdateProductNoteLine": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "UpdateProductNoteLine", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceUpdateProductNoteLineParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceUpdateProductNoteLineParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceUpdateProductNoteLineParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceUpdateProductNoteLineResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/UpsertInvoiceLine_Session": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "UpsertInvoiceLine_Session", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceUpsertInvoiceLineSessionParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceUpsertInvoiceLineSessionParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceUpsertInvoiceLineSessionParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceUpsertInvoiceLineSessionResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/GetNotSyncedLine": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedLine", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/PreProcessLine": { + "post": { + "tags": [ + "Invoice" + ], + "summary": "Preprocess/validate InvoiceLine record before saving. (Auth)", + "operationId": "PreProcessLine", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified InvoiceLine with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLinePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLinePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLinePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/ImportInvoiceWithData": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "ImportInvoiceWithData", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportInvoiceWithDataCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ImportInvoiceWithDataCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ImportInvoiceWithDataCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/GetInvoiceLinesByRule": { + "get": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "GetInvoiceLinesByRule", + "parameters": [ + { + "name": "AssignmentId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "InvoiceLineRuleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "VATFree", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/CreateInvoice": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "CreateInvoice", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInvoiceCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateInvoiceCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CreateInvoiceCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/CancelInvoice": { + "put": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "CancelInvoice2", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceCancelParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceCancelResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/CreateCreditNote": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "CreateCreditNote2", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCreditNoteCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateCreditNoteCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CreateCreditNoteCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Invoice/PreProcessInvoiceLine": { + "post": { + "tags": [ + "Invoice" + ], + "summary": " (Auth)", + "operationId": "PreProcessInvoiceLine", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PreProcessInvoiceLineCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/PreProcessInvoiceLineCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/PreProcessInvoiceLineCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/InvoiceLineRule/Upsert": { + "post": { + "tags": [ + "InvoiceLineRule" + ], + "summary": "Create or update a list of invoiceLineRules. (Auth)", + "operationId": "Upsert32", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineRuleDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineRuleDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineRuleDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineRuleUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineRuleUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/InvoiceLineRule/GetNotSynced": { + "post": { + "tags": [ + "InvoiceLineRule" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced14", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineRuleGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineRuleGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineRuleGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceLineRuleGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/InvoiceLineRule/PreProcess": { + "post": { + "tags": [ + "InvoiceLineRule" + ], + "summary": "Preprocess/validate InvoiceLineRule record before saving. (Auth)", + "operationId": "PreProcess5", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified InvoiceLineRule with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineRulePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineRulePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceLineRulePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/InvoiceLineRule/SetInvoiceLineRuleWageCodeTypes": { + "post": { + "tags": [ + "InvoiceLineRule" + ], + "summary": " (Auth)", + "operationId": "SetInvoiceLineRuleWageCodeTypes", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceLineRuleWageCodeTypesCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceLineRuleWageCodeTypesCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SetInvoiceLineRuleWageCodeTypesCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/InvoiceTemplate/Upsert": { + "post": { + "tags": [ + "InvoiceTemplate" + ], + "summary": "Create or update a list of invoiceTemplates. (Auth)", + "operationId": "Upsert33", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceTemplateDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceTemplateDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceTemplateDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceTemplateUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceTemplateUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/InvoiceTemplate/PreProcess": { + "post": { + "tags": [ + "InvoiceTemplate" + ], + "summary": "Preprocess/validate InvoiceTemplate record before saving. (Auth)", + "operationId": "PreProcess6", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified InvoiceTemplate with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceTemplatePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/InvoiceTemplatePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/InvoiceTemplatePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/JobCategory/Upsert": { + "post": { + "tags": [ + "JobCategory" + ], + "summary": "Create or update a list of jobCategories. (Auth)", + "operationId": "Upsert34", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/JobCategory/GetNotSynced": { + "post": { + "tags": [ + "JobCategory" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced15", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobCategoryGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JobCategoryGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JobCategoryGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobCategoryGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/JobCategory/PreProcess": { + "post": { + "tags": [ + "JobCategory" + ], + "summary": "Preprocess/validate JobCategory record before saving. (Auth)", + "operationId": "PreProcess7", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified JobCategory with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobCategoryPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/JobCategoryPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/JobCategoryPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/LedgerAccount/Upsert": { + "post": { + "tags": [ + "LedgerAccount" + ], + "summary": "Create or update a list of ledgerAccounts. (Auth)", + "operationId": "Upsert35", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerAccountDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerAccountDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerAccountDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerAccountUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerAccountUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/LedgerAccount/GetNotSynced": { + "post": { + "tags": [ + "LedgerAccount" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced16", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LedgerAccountGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/LedgerAccountGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LedgerAccountGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerAccountGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/MapData/Upsert": { + "post": { + "tags": [ + "MapData" + ], + "summary": "Create or update a list of mapDatas. (Auth)", + "operationId": "Upsert36", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/MapData/Prepare": { + "post": { + "tags": [ + "MapData" + ], + "summary": "Initialize the MapData table with all entities the user need to make mapping decisions on. (Auth)", + "description": "This fills in the MapData table with relevant records from the client db \\\r\nin practice, after calling it, the MapData table is ready to be presented. \\\r\n \\\r\nThis method will remember final user choices, and can safely be called \\\r\nagain when there are changes in the mapped data either in MapDataValue or any of the corresponding registers in CW. \\\r\n \\\r\n**Note:** the MapDataIDs might change between runs, but the users selection will be retained across IDs. \\\r\nIf \"clearExistingData\" is true, the current user choices will be discarded. \\\r\n \\\r\nMapDataValueID will be auto set if an exact match is found. \\\r\nSuggested_MapDataValueID will always be set and reflect the best detected match if one is found. \\\r\nPartial and fuzzy matches are supported. \\\r\n \\\r\nSuggested_MapDataValueID is intended to show the best possble match at any given time, while \\\r\nMapDataValueID contains real choices made. \\\r\nThe latter is auto set when matches are exact as a time-saving feature for end-users.", + "operationId": "Prepare", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MapDataPrepareParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/MapDataPrepareParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/MapDataPrepareParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/MapDataValue/Upsert": { + "post": { + "tags": [ + "MapDataValue" + ], + "summary": "Create or update a list of mapDataValues. (Auth)", + "operationId": "Upsert37", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataValueDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataValueDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataValueDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataValueUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MapDataValueUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/PaymentTerm/Upsert": { + "post": { + "tags": [ + "PaymentTerm" + ], + "summary": "Create or update a list of paymentTerms. (Auth)", + "operationId": "Upsert38", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentTermDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentTermDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentTermDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentTermUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentTermUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/PaymentTerm/GetNotSynced": { + "post": { + "tags": [ + "PaymentTerm" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced17", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaymentTermGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/PaymentTermGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/PaymentTermGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentTermGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Permission/Upsert": { + "post": { + "tags": [ + "Permission" + ], + "summary": "Create or update a list of permissions. (Auth)", + "operationId": "Upsert39", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Product/Upsert": { + "post": { + "tags": [ + "Product" + ], + "summary": "Create or update a list of products. (Auth)", + "operationId": "Upsert40", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Product/GetNotSynced": { + "post": { + "tags": [ + "Product" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced18", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Product/PreProcess": { + "post": { + "tags": [ + "Product" + ], + "summary": "Preprocess/validate Product record before saving. (Auth)", + "operationId": "PreProcess8", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified Product with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Product/UpsertWithSupplierIndustryType": { + "post": { + "tags": [ + "Product" + ], + "summary": " (Auth)", + "operationId": "UpsertWithSupplierIndustryType", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductUpsertWithSupplierIndustryTypeParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductUpsertWithSupplierIndustryTypeParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductUpsertWithSupplierIndustryTypeParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductUpsertWithSupplierIndustryTypeResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductAgreement/Upsert": { + "post": { + "tags": [ + "ProductAgreement" + ], + "summary": "Create or update a list of productAgreements. (Auth)", + "operationId": "Upsert41", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductAgreement/GetNotSynced": { + "post": { + "tags": [ + "ProductAgreement" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced19", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductAgreement/PreProcess": { + "post": { + "tags": [ + "ProductAgreement" + ], + "summary": "Preprocess/validate ProductAgreement record before saving. (Auth)", + "operationId": "PreProcess9", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified ProductAgreement with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductAgreement/GetNotSyncedDetail": { + "post": { + "tags": [ + "ProductAgreement" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedDetail", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementDetailGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementDetailGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductAgreementDetailGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductAgreementDetailGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductImportFileSet/Upsert": { + "post": { + "tags": [ + "ProductImportFileSet" + ], + "summary": "Create or update a list of productImportFileSets. (Auth)", + "operationId": "Upsert42", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductImportFileSetDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductImportFileSetDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductImportFileSetDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductImportFileSetUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductImportFileSetUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/CalculatePriceForProductPicker": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": "Get prices for specified assignment and product supplier industry types (Auth)", + "operationId": "CalculatePriceForProductPicker", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CalculatePriceForProductPickerDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CalculatePriceForProductPickerDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CalculatePriceForProductPickerDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CalculatePriceForProductPickerResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/Upsert": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": "Create or update a list of productNotes. (Auth)", + "operationId": "Upsert43", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/PrepareAttachmentUpload": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": "Accepts ProductNoteId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload5", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById5", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/GetNotSynced": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced20", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/MoveToAssignment": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "MoveToAssignment", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/MoveToStorage": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "MoveToStorage", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/PreProcessProductNoteLine": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "PreProcessProductNoteLine", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/GetNotSyncedLine": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedLine2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/MoveLinesToAssignment": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "MoveLinesToAssignment", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductNote/MoveLinesToAssignmentOrStorage": { + "post": { + "tags": [ + "ProductNote" + ], + "summary": " (Auth)", + "operationId": "MoveLinesToAssignmentOrStorage", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentOrStorageParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentOrStorageParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentOrStorageParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteMoveLinesToAssignmentOrStorageResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductSupplierIndustryType/Upsert": { + "post": { + "tags": [ + "ProductSupplierIndustryType" + ], + "summary": "Create or update a list of productSupplierIndustryTypes. (Auth)", + "operationId": "Upsert44", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductSupplierIndustryType/GetNotSynced": { + "post": { + "tags": [ + "ProductSupplierIndustryType" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced21", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSupplierIndustryTypeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProductSync/Upsert": { + "post": { + "tags": [ + "ProductSync" + ], + "summary": "Create or update a list of productSyncs. (Auth)", + "operationId": "Upsert45", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSyncDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSyncDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSyncDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSyncUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSyncUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Project/Upsert": { + "post": { + "tags": [ + "Project" + ], + "summary": "Create or update a list of projects. (Auth)", + "operationId": "Upsert46", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Project/PrepareAttachmentUpload": { + "post": { + "tags": [ + "Project" + ], + "summary": "Accepts ProjectId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload6", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Project/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "Project" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById6", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Project/GetNotSynced": { + "post": { + "tags": [ + "Project" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced22", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Project/PreProcess": { + "post": { + "tags": [ + "Project" + ], + "summary": "Preprocess/validate Project record before saving. (Auth)", + "operationId": "PreProcess10", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified Project with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Project/GetNotSyncedContact": { + "post": { + "tags": [ + "Project" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedContact3", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ContactGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectAccount/Upsert": { + "post": { + "tags": [ + "ProjectAccount" + ], + "summary": "Create or update a list of projectAccounts. (Auth)", + "operationId": "Upsert47", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectAccount/GetNotSynced": { + "post": { + "tags": [ + "ProjectAccount" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced23", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectAccountGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectAccountGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectAccountGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectAccount/PreProcess": { + "post": { + "tags": [ + "ProjectAccount" + ], + "summary": "Preprocess/validate ProjectAccount record before saving. (Auth)", + "operationId": "PreProcess11", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified ProjectAccount with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectAccountPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectAccountPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectAccountPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectAccountCategory/Upsert": { + "post": { + "tags": [ + "ProjectAccountCategory" + ], + "summary": "Create or update a list of projectAccountCategories. (Auth)", + "operationId": "Upsert48", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectAccountReportCategory/Upsert": { + "post": { + "tags": [ + "ProjectAccountReportCategory" + ], + "summary": "Create or update a list of projectAccountReportCategories. (Auth)", + "operationId": "Upsert49", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectAccountReportCategoryType/Upsert": { + "post": { + "tags": [ + "ProjectAccountReportCategoryType" + ], + "summary": "Create or update a list of projectAccountReportCategoryTypes. (Auth)", + "operationId": "Upsert50", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryTypeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryTypeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryTypeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryTypeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryTypeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectGroup/Upsert": { + "post": { + "tags": [ + "ProjectGroup" + ], + "summary": "Create or update a list of projectGroups. (Auth)", + "operationId": "Upsert51", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGroupDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGroupDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGroupDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGroupUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGroupUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectGroup/GetNotSynced": { + "post": { + "tags": [ + "ProjectGroup" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced24", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectGroupGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectGroupGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectGroupGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectGroupGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectPeriod/Upsert": { + "post": { + "tags": [ + "ProjectPeriod" + ], + "summary": "Create or update a list of projectPeriods. (Auth)", + "operationId": "Upsert52", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectPeriodDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectPeriodDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectPeriodDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectPeriodUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectPeriodUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectReport/Upsert": { + "post": { + "tags": [ + "ProjectReport" + ], + "summary": "Create or update a list of projectReports. (Auth)", + "operationId": "Upsert53", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectReportDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectReportDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectReportDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectReportUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectReportUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectReport/PreProcess": { + "post": { + "tags": [ + "ProjectReport" + ], + "summary": "Preprocess/validate ProjectReport record before saving. (Auth)", + "operationId": "PreProcess12", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified ProjectReport with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectReportPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectReportPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectReportPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectType/Upsert": { + "post": { + "tags": [ + "ProjectType" + ], + "summary": "Create or update a list of projectTypes. (Auth)", + "operationId": "Upsert54", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectTypeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectTypeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectTypeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectTypeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectTypeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ProjectType/GetNotSynced": { + "post": { + "tags": [ + "ProjectType" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced25", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectTypeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProjectTypeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProjectTypeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectTypeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/PurchaseAgreement/Upsert": { + "post": { + "tags": [ + "PurchaseAgreement" + ], + "summary": "Create or update a list of purchaseAgreements. (Auth)", + "operationId": "Upsert55", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PurchaseAgreementUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PurchaseAgreementUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Role/Upsert": { + "post": { + "tags": [ + "Role" + ], + "summary": "Create or update a list of roles. (Auth)", + "operationId": "Upsert56", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/RolePermission/Upsert": { + "post": { + "tags": [ + "RolePermission" + ], + "summary": "Create or update a list of rolePermissions. (Auth)", + "operationId": "Upsert57", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RolePermissionDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RolePermissionDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RolePermissionDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RolePermissionUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RolePermissionUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Service/Upsert": { + "post": { + "tags": [ + "Service" + ], + "summary": "Create or update a list of services. (Auth)", + "operationId": "Upsert58", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Service/GetNotSynced": { + "post": { + "tags": [ + "Service" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced26", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServiceGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServiceGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Service/MoveToAssignment": { + "post": { + "tags": [ + "Service" + ], + "summary": " (Auth)", + "operationId": "MoveToAssignment2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceMoveToAssignmentParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServiceMoveToAssignmentParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServiceMoveToAssignmentParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceMoveToAssignmentResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Service/PreProcess": { + "post": { + "tags": [ + "Service" + ], + "summary": "Preprocess/validate Service record before saving. (Auth)", + "operationId": "PreProcess13", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified Service with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServicePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServicePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServicePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ServiceAgreement/Upsert": { + "post": { + "tags": [ + "ServiceAgreement" + ], + "summary": "Create or update a list of serviceAgreements. (Auth)", + "operationId": "Upsert59", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ServiceAgreement/GetNotSynced": { + "post": { + "tags": [ + "ServiceAgreement" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced27", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ServiceAgreement/PreProcess": { + "post": { + "tags": [ + "ServiceAgreement" + ], + "summary": "Preprocess/validate ServiceAgreement record before saving. (Auth)", + "operationId": "PreProcess14", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified ServiceAgreement with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ServiceAgreement/GetNotSyncedDetail": { + "post": { + "tags": [ + "ServiceAgreement" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedDetail2", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementDetailGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementDetailGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementDetailGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceAgreementDetailGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ServiceAgreement/PreProcessDetail": { + "post": { + "tags": [ + "ServiceAgreement" + ], + "summary": "Preprocess/validate ServiceAgreementDetail record before saving. (Auth)", + "operationId": "PreProcessDetail", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified ServiceAgreementDetail with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementDetailPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementDetailPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ServiceAgreementDetailPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/ServiceContract/Upsert": { + "post": { + "tags": [ + "ServiceContract" + ], + "summary": "Create or update a list of serviceContracts. (Auth)", + "operationId": "Upsert60", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceContractDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceContractDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceContractDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceContractUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceContractUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Settings_Assignment/Upsert": { + "post": { + "tags": [ + "Settings_Assignment" + ], + "summary": "Create or update a list of settings_Assignments. (Auth)", + "operationId": "Upsert61", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_AssignmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_AssignmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_AssignmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_AssignmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_AssignmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Settings_Main/Upsert": { + "post": { + "tags": [ + "Settings_Main" + ], + "summary": "Create or update a list of settings_Mains. (Auth)", + "operationId": "Upsert62", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_MainDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_MainDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_MainDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_MainUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_MainUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Settings_ProductImport/Upsert": { + "post": { + "tags": [ + "Settings_ProductImport" + ], + "summary": "Create or update a list of settings_ProductImports. (Auth)", + "operationId": "Upsert63", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_ProductImportDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_ProductImportDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_ProductImportDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_ProductImportUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_ProductImportUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Settings_User/Upsert": { + "post": { + "tags": [ + "Settings_User" + ], + "summary": "Create or update a list of settings_Users. (Auth)", + "operationId": "Upsert64", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_UserDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_UserDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_UserDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_UserUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Settings_UserUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Stock/Upsert": { + "post": { + "tags": [ + "Stock" + ], + "summary": "Create or update a list of stocks. (Auth)", + "operationId": "Upsert65", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Stock/GetNotSynced": { + "post": { + "tags": [ + "Stock" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced28", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/StockCount/Upsert": { + "post": { + "tags": [ + "StockCount" + ], + "summary": "Create or update a list of stockCounts. (Auth)", + "operationId": "Upsert66", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockCountDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockCountDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockCountDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockCountUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockCountUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/StockAdjustment": { + "post": { + "tags": [ + "Storage" + ], + "summary": "Adjust product quantity and price on specific storage (Auth)", + "operationId": "StockAdjustment", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockAdjustmentParameters" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockAdjustmentParameters" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockAdjustmentParameters" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/Upsert": { + "post": { + "tags": [ + "Storage" + ], + "summary": "Create or update a list of storages. (Auth)", + "operationId": "Upsert67", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/GetNotSynced": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced29", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StorageGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StorageGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/GetNotSyncedStock": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedStock", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/GetNotSyncedStockTransaction": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedStockTransaction", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockTransactionGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockTransactionGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockTransactionGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockTransactionGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/StockTransfer": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "StockTransfer", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockTransferParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockTransferParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockTransferParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/StorageTransfer": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "StorageTransfer", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockStorageTransferParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockStorageTransferParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockStorageTransferParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/Adjustment_PreProcess": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "Adjustment_PreProcess", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockAdjustmentPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockAdjustmentPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockAdjustmentPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StockAdjustmentPreProcessResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Storage/UpdateAverageCostPrice": { + "post": { + "tags": [ + "Storage" + ], + "summary": " (Auth)", + "operationId": "UpdateAverageCostPrice", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StockUpdateAverageCostPriceParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/StockUpdateAverageCostPriceParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StockUpdateAverageCostPriceParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/StorageTransfer/Upsert": { + "post": { + "tags": [ + "StorageTransfer" + ], + "summary": "Create or update a list of storageTransfers. (Auth)", + "operationId": "Upsert68", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageTransferDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageTransferDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageTransferDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageTransferUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageTransferUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Supplier/Upsert": { + "post": { + "tags": [ + "Supplier" + ], + "summary": "Create or update a list of suppliers. (Auth)", + "operationId": "Upsert69", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Supplier/GetNotSynced": { + "post": { + "tags": [ + "Supplier" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced30", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Supplier/GetNotSyncedAddress": { + "post": { + "tags": [ + "Supplier" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedAddress4", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddressGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierIndustryType/Upsert": { + "post": { + "tags": [ + "SupplierIndustryType" + ], + "summary": "Create or update a list of supplierIndustryTypes. (Auth)", + "operationId": "Upsert70", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierIndustryType/GetNotSynced": { + "post": { + "tags": [ + "SupplierIndustryType" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced31", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierIndustryType/PreProcess": { + "post": { + "tags": [ + "SupplierIndustryType" + ], + "summary": "Preprocess/validate SupplierIndustryType record before saving. (Auth)", + "operationId": "PreProcess15", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified SupplierIndustryType with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierIndustryType/ProductDeactivate": { + "post": { + "tags": [ + "SupplierIndustryType" + ], + "summary": "Deactivates products for a supplier industry type (Auth)", + "description": "The intended use is to deactivate products not in use for a supplier industry type \\\r\n \\\r\nThe affected ProductSupplierIndustryTypes will get Sys_Deactivated = 1 and Inactive = 1 \\\r\n \\\r\nNote that for ProductSupplierIndustryTypes where there are items in stock, and this is the only active \\\r\nsource for the stock, the ProductSupplierIndustryType will be set to Inactive but will NOT be \\\r\nset to Sys_Deactivated. \\\r\n \\\r\nIf the procedure is run in simulation mode, no changes will be done to any data but the number of affected items \\\r\nwill still be returned. \\", + "operationId": "ProductDeactivate", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductDeactivateParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductDeactivateParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductDeactivateParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductDeactivateResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierIndustryType/ProductReactivate": { + "post": { + "tags": [ + "SupplierIndustryType" + ], + "summary": "Reactivates products for a supplier industry type (Auth)", + "description": "This procedures removes Sys_Deactivated and Inactive flags from ProductSupplierIndustryTypes. \\\r\n \\\r\nIt is intended for reversing calls to ProductDeactivate. \\\r\n \\\r\nIf the procedure is run in simulation mode, no changes will be done to any data but the number of affected items \\\r\nwill still be returned. \\", + "operationId": "ProductReactivate", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductReactivateParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductReactivateParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductReactivateParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeProductReactivateResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierIndustryTypeFtpInfo/Upsert": { + "post": { + "tags": [ + "SupplierIndustryTypeFtpInfo" + ], + "summary": "Create or update a list of supplierIndustryTypeFtpInfos. (Auth)", + "operationId": "Upsert71", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeFtpInfoDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeFtpInfoDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeFtpInfoDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeFtpInfoUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierIndustryTypeFtpInfoUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/Upsert": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": "Create or update a list of supplierInvoices. (Auth)", + "operationId": "Upsert72", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/PrepareAttachmentUpload": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": "Accepts SupplierInvoiceId, Creates blob with write SAS token and saves meta data for attachment (Auth)", + "operationId": "PrepareAttachmentUpload7", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentUploadDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentUploadDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentUploadDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/PrepareAttachmentUploadById": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": "Accepts AttachmentId, Creates blob with write SAS token and updates meta data on that attachment (Auth)", + "operationId": "PrepareAttachmentUploadById7", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attachment for which we are preparing upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AttachmentUploadByIdDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentSasResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/GetNotSynced": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced32", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/Reverse": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "Reverse", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceReverseParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceReverseParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceReverseParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceReverseResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/GetNotSyncedProductNote": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedProductNote", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/MoveToAssignmentProductNote": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "MoveToAssignmentProductNote", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteMoveToAssignmentResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/MoveToStorageProductNote": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "MoveToStorageProductNote", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteMoveToStorageResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/PreProcessProductNoteLineProductNote": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "PreProcessProductNoteLineProductNote", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNotePreProcessProductNoteLineResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/GetNotSyncedProductNoteLine": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedProductNoteLine", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductNoteLineGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoice/GetNotSyncedLine": { + "post": { + "tags": [ + "SupplierInvoice" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedLine3", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceLineGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceLineGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SupplierInvoiceLineGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceLineGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoiceAttachment/Upsert": { + "post": { + "tags": [ + "SupplierInvoiceAttachment" + ], + "summary": "Create or update a list of supplierInvoiceAttachments. (Auth)", + "operationId": "Upsert73", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SupplierInvoiceProductMatch/Upsert": { + "post": { + "tags": [ + "SupplierInvoiceProductMatch" + ], + "summary": "Create or update a list of supplierInvoiceProductMatchs. (Auth)", + "operationId": "Upsert74", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceProductMatchDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceProductMatchDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceProductMatchDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceProductMatchUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupplierInvoiceProductMatchUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/SystemNotification/Upsert": { + "post": { + "tags": [ + "SystemNotification" + ], + "summary": "Create or update a list of systemNotifications. (Auth)", + "operationId": "Upsert75", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SystemNotificationDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SystemNotificationDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SystemNotificationDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SystemNotificationUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SystemNotificationUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/Team/Upsert": { + "post": { + "tags": [ + "Team" + ], + "summary": "Create or update a list of teams. (Auth)", + "operationId": "Upsert76", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/User/GetPermissions": { + "get": { + "tags": [ + "User" + ], + "summary": " (Auth)", + "operationId": "GetPermissions", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/User/CreateUser": { + "post": { + "tags": [ + "User" + ], + "summary": " (Auth policies: Access.Write; roles: clientadmin)", + "operationId": "CreateUser", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CreateUserCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserData" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [ + "Access.Write" + ] + } + ] + } + }, + "/v3/client/{clientid}/User/UpdateOwnProfile": { + "put": { + "tags": [ + "User" + ], + "summary": " (Auth)", + "operationId": "UpdateOwnProfile", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOwnProfileCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOwnProfileCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdateOwnProfileCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/User/UpdateUser": { + "put": { + "tags": [ + "User" + ], + "summary": " (Auth policies: Access.Write; roles: clientadmin)", + "operationId": "UpdateUser", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserCommand" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserCommand" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserCommand" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [ + "Access.Write" + ] + } + ] + } + }, + "/v3/client/{clientid}/UserCommand/GetUserCommands": { + "get": { + "tags": [ + "UserCommand" + ], + "summary": "Gets all UserCommands defined for the current user (Auth)", + "operationId": "GetUserCommands", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserCommandDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/UserCommand/Upsert": { + "post": { + "tags": [ + "UserCommand" + ], + "summary": "Create or update a list of userCommands. (Auth)", + "operationId": "Upsert77", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserCommandDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserCommandDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserCommandDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserCommandUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserCommandUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/UserRole/Upsert": { + "post": { + "tags": [ + "UserRole" + ], + "summary": "Create or update a list of userRoles. (Auth)", + "operationId": "Upsert78", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRoleDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRoleDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRoleDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRoleUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRoleUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/VATRate/Upsert": { + "post": { + "tags": [ + "VATRate" + ], + "summary": "Create or update a list of vATRates. (Auth)", + "operationId": "Upsert79", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VATRateDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VATRateDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VATRateDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VATRateUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VATRateUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/VATRate/GetNotSynced": { + "post": { + "tags": [ + "VATRate" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced33", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VATRateGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/VATRateGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/VATRateGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VATRateGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCode/Upsert": { + "post": { + "tags": [ + "WageCode" + ], + "summary": "Create or update a list of wageCodes. (Auth)", + "operationId": "Upsert80", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCode/GetNotSynced": { + "post": { + "tags": [ + "WageCode" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced34", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCode/PreProcess": { + "post": { + "tags": [ + "WageCode" + ], + "summary": " (Auth)", + "operationId": "PreProcess16", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodePreProcessDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodePreProcessDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodePreProcessDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategory/Upsert": { + "post": { + "tags": [ + "WageCodeReportCategory" + ], + "summary": "Create or update a list of wageCodeReportCategories. (Auth)", + "operationId": "Upsert81", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategory/GetNotSynced": { + "post": { + "tags": [ + "WageCodeReportCategory" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced35", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategory/PreProcess": { + "post": { + "tags": [ + "WageCodeReportCategory" + ], + "summary": "Preprocess/validate WageCodeReportCategory record before saving. (Auth)", + "operationId": "PreProcess17", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified WageCodeReportCategory with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategoryType/Upsert": { + "post": { + "tags": [ + "WageCodeReportCategoryType" + ], + "summary": "Create or update a list of wageCodeReportCategoryTypes. (Auth)", + "operationId": "Upsert82", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategoryType/GetNotSynced": { + "post": { + "tags": [ + "WageCodeReportCategoryType" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced36", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryTypeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategoryType/GetNotSyncedWageCodeReportCategory": { + "post": { + "tags": [ + "WageCodeReportCategoryType" + ], + "summary": " (Auth)", + "operationId": "GetNotSyncedWageCodeReportCategory", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageCodeReportCategoryType/PreProcessWageCodeReportCategory": { + "post": { + "tags": [ + "WageCodeReportCategoryType" + ], + "summary": "Preprocess/validate WageCodeReportCategory record before saving. (Auth)", + "operationId": "PreProcessWageCodeReportCategory", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified WageCodeReportCategory with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryPreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryPreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageCodeReportCategoryPreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageGroup/Upsert": { + "post": { + "tags": [ + "WageGroup" + ], + "summary": "Create or update a list of wageGroups. (Auth)", + "operationId": "Upsert83", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageGroupDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageGroupDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageGroupDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageGroupUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageGroupUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageGroup/GetNotSynced": { + "post": { + "tags": [ + "WageGroup" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced37", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageGroupGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageGroupGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageGroupGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageGroupGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WagePeriod/Upsert": { + "post": { + "tags": [ + "WagePeriod" + ], + "summary": "Create or update a list of wagePeriods. (Auth)", + "operationId": "Upsert84", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WagePeriodDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WagePeriodDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WagePeriodDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WagePeriodUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WagePeriodUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WagePeriod/GetNotSynced": { + "post": { + "tags": [ + "WagePeriod" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced38", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WagePeriodGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WagePeriodGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WagePeriodGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WagePeriodGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WagePeriod/ExportPayrollFile": { + "post": { + "tags": [ + "WagePeriod" + ], + "summary": "Export a payroll file for import in an external payroll system (Auth)", + "operationId": "ExportPayrollFile", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportPayrollFileDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExportPayrollFileDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExportPayrollFileDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WagePeriod/GetPayrollFile": { + "get": { + "tags": [ + "WagePeriod" + ], + "summary": "Export a payroll file for import in an external payroll system (Auth)", + "operationId": "GetPayrollFile", + "parameters": [ + { + "name": "wagePeriodId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "payrollFormat", + "in": "query", + "schema": { + "$ref": "#/components/schemas/PayrollFormatEnum" + } + }, + { + "name": "separatorChar", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeAssignmentNumber", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "includeProjectNumber", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "textEncoding", + "in": "query", + "schema": { + "$ref": "#/components/schemas/TextEncodingEnum" + } + }, + { + "name": "includeFormatInfoInFileName", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WagePeriod/ExportPayrollFileB64": { + "post": { + "tags": [ + "WagePeriod" + ], + "summary": "Export a payroll file for import in an external payroll system (Auth)", + "operationId": "ExportPayrollFileB64", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportPayrollFileDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ExportPayrollFileDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExportPayrollFileDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B64FileResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRate/Upsert": { + "post": { + "tags": [ + "WageRate" + ], + "summary": "Create or update a list of wageRates. (Auth)", + "operationId": "Upsert85", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRate/GetNotSynced": { + "post": { + "tags": [ + "WageRate" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced39", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageRateGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageRateGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageRateGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRate/PreProcess": { + "post": { + "tags": [ + "WageRate" + ], + "summary": "Preprocess/validate WageRate record before saving. (Auth)", + "operationId": "PreProcess18", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified WageRate with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageRatePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageRatePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageRatePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRate/GetWageRateClient": { + "get": { + "tags": [ + "WageRate" + ], + "summary": " (Auth)", + "operationId": "GetWageRateClient", + "parameters": [ + { + "name": "EmployeeId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "WageCodeId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "number", + "format": "decimal" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRateEmployee/Upsert": { + "post": { + "tags": [ + "WageRateEmployee" + ], + "summary": "Create or update a list of wageRateEmployees. (Auth)", + "operationId": "Upsert86", + "parameters": [ + { + "name": "clientid", + "in": "path", + "required": true, + "description": "Id of a current client.", + "schema": { + "type": "string", + "default": "b-dummydata" + } + }, + { + "name": "apiBehaviour", + "in": "query", + "description": "Changes api behaviour. It is possible to combine non-default behaviours, sending them as comma separated string.\r\nBehaviours: NoEvents, NoPostProcessing, UpdateAnyField, ProcessUnchanged, AllowIndividualRootDtoFailure, TreatNullAsNotSetAndNegOneAsNull\r\nWhen using AllowIndividualRootDtoFailure ordering of output result dtos is not garanteed to be same as ordering of input dtos", + "schema": { + "type": "string" + } + }, + { + "name": "externalSystemId", + "in": "query", + "description": "Represents owner system of external ids", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateEmployeeDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateEmployeeDto" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateEmployeeDto" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateEmployeeUpsertResultDto" + } + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateEmployeeUpsertResultDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRateEmployee/GetNotSynced": { + "post": { + "tags": [ + "WageRateEmployee" + ], + "summary": " (Auth)", + "operationId": "GetNotSynced40", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageRateEmployeeGetNotSyncedParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageRateEmployeeGetNotSyncedParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageRateEmployeeGetNotSyncedParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WageRateEmployeeGetNotSyncedResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + }, + "/v3/client/{clientid}/WageRateEmployee/PreProcess": { + "post": { + "tags": [ + "WageRateEmployee" + ], + "summary": "Preprocess/validate WageRateEmployee record before saving. (Auth)", + "operationId": "PreProcess19", + "parameters": [ + { + "name": "apiBehaviour", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "clientid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Simplified WageRateEmployee with the current values from the UI", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WageRateEmployeePreProcessParameters" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/WageRateEmployeePreProcessParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WageRateEmployeePreProcessParameters" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PreProcessDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "oauth2": [] + } + ] + } + } + }, + "components": { + "schemas": { + "AddressDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "addressId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "addressIdExternal": { + "type": "string", + "description": "External ID corresponding to AddressId for the current ExternalSystem", + "nullable": true + }, + "address1": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "address2": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "cadastralUnitNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "countryId": { + "type": "string", + "description": "Reference to Country \r\nType: string? (Max: 2)", + "nullable": true + }, + "eDokBuildingPlantId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "eDokNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "eDokPlantId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "eDokProjectId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "eDokProjectNumber": { + "type": "string", + "description": "Type: string? (Max: 15)", + "nullable": true + }, + "gLN": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "gPSPositionAccuracy": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "gPSPositionAltitude": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "gPSPositionLatitude": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "gPSPositionLongitude": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "gPSPositionSourceType": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "leaseholdUnitNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "municipalityNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "name2": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "postalNumber": { + "type": "string", + "description": "Type: string? (Max: 10)", + "nullable": true + }, + "postalPlace": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "propertyUnitNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sectionUnitNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sectionUnitText": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "shareUnitNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemAddresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAddressDto" + } + } + } + }, + "AddressGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AddressGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "addressId": { + "type": "integer", + "format": "int32" + } + } + }, + "AddressUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "addressId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "addressIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemAddresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAddressUpsertResultDto" + } + } + } + }, + "AdminGetRowErrorMessagesParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "table": { + "type": "string", + "nullable": true + }, + "rowId": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AdminGetRowErrorMessagesResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "textId": { + "type": "string", + "nullable": true + }, + "enum_RowStateId": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "linkEntity": { + "type": "string", + "nullable": true + }, + "linkId": { + "type": "string", + "nullable": true + }, + "linkTab": { + "type": "string", + "nullable": true + }, + "userMsgEN": { + "type": "string", + "nullable": true + }, + "userMsgNO": { + "type": "string", + "nullable": true + } + } + }, + "AppointmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "appointmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "appointmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AppointmentId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "description": { + "type": "string", + "description": "Will be auto-filled with assignment number and customer name if no value is set and an assignment is referenced on the appointment. \r\nType: string? (Max: 255) \r\nValidation: MultilineText", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "endDateTimeUTC": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: DateTime \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "startDateTimeUTC": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: DateTime \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemAppointments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAppointmentDto" + } + } + } + }, + "AppointmentGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AppointmentGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "appointmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "AppointmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "appointmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "appointmentIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemAppointments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAppointmentUpsertResultDto" + } + } + } + }, + "ApprovalStatusEnum": { + "type": "string", + "enum": [ + "Waiting", + "Approved", + "Rejected" + ] + }, + "AssignmentAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "assignmentAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "AssignmentCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "assignmentCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentCategoryId for the current ExternalSystem", + "nullable": true + }, + "assignmentCategoryNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "marginPercent": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemAssignmentCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAssignmentCategoryDto" + } + } + } + }, + "AssignmentCategoryGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AssignmentCategoryGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentCategoryId": { + "type": "integer", + "format": "int32" + } + } + }, + "AssignmentCategoryPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentCategoryNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemAssignmentCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAssignmentCategoryUpsertResultDto" + } + } + } + }, + "AssignmentCopyDimensionsFromProjectParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentCopyDimensionsFromProjectResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "success": { + "type": "integer", + "format": "int32" + } + } + }, + "AssignmentCopyParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "addressId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "copyContact": { + "type": "boolean", + "nullable": true + }, + "copyParticipants": { + "type": "boolean", + "nullable": true + }, + "copyDimension": { + "type": "boolean", + "nullable": true + }, + "syncAssignmentToSpeedyCraft": { + "type": "boolean", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internalReference": { + "type": "string", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "nullable": true + }, + "note": { + "type": "string", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentCopyResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "assignmentCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentCategoryId for the current ExternalSystem", + "nullable": true + }, + "caseHandler_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to CaseHandler_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "default_InvoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "default_ProductAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "jobResponsible_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to JobResponsible_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "description": "External ID corresponding to PaymentTermId for the current ExternalSystem", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "archived": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "assignmentCategoryId": { + "type": "integer", + "description": "Reference to AssignmentCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "assignmentCompleteDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "assignmentCompleteMobileDevice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "assignmentNumber": { + "type": "integer", + "description": "Type: int? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "caseHandler_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "contact": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "coverageRateFixedPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "coverageRateNotFixedPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "customerReference": { + "type": "string", + "description": "Type: string? (Max: 200)", + "nullable": true + }, + "default_InvoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_ProductAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "emailAddress": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Email", + "nullable": true + }, + "endDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "estimatedCompletionPercentage": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "estimatedTotalHours": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "externalReference": { + "type": "string", + "description": "Type: string? (Max: 200)", + "nullable": true + }, + "fixedPriceAmount": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "fixedPriceInvoiced": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "groupedInvoicing": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "internalOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "internalReference": { + "type": "string", + "description": "Type: string? (Max: 200)", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "jobResponsible_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "jobResponsibleCompleted": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "jobResponsibleCompletedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "keyInformation": { + "type": "string", + "description": "Type: string? (Max: 200)", + "nullable": true + }, + "linkedAssignmentId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "marginPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "mobile": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "note": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "optimizedAtUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "description": "Reference to PaymentTerm \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "phone": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "pieceworkNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "readyToInvoice": { + "type": "boolean", + "description": "Type: bool?", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "serviceContractId": { + "type": "integer", + "description": "Reference to ServiceContract \r\nType: int?", + "format": "int32", + "nullable": true + }, + "serviceInvoiceLimitDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sortDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "startDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "syncToEconomySystem": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "description": "The assingment is for internal purposes, and should not be synced with handheld devices. \r\n__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Tags": { + "type": "string", + "description": "Type: string? (Max: 255)", + "nullable": true + }, + "timeSheetAttachmentsNumber": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "warrantyDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "enum_AssignmentProgressId": { + "$ref": "#/components/schemas/AssignmentProgressEnum" + }, + "enum_AssignmentStatusId": { + "$ref": "#/components/schemas/AssignmentStatusEnum" + }, + "enum_AssignmentTypeId": { + "$ref": "#/components/schemas/AssignmentTypeEnum" + }, + "enum_ContractTypeId": { + "$ref": "#/components/schemas/ContractTypeEnum" + }, + "enum_InvoiceReserveBilledPriceCalculationId": { + "$ref": "#/components/schemas/InvoiceReserveBilledPriceCalculationEnum" + }, + "enum_InvoiceReserveFixedPriceCalculationId": { + "$ref": "#/components/schemas/InvoiceReserveFixedPriceCalculationEnum" + }, + "addressId": { + "type": "integer", + "description": "Reference to Address (directly updateable through Address) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_ContactId": { + "type": "integer", + "description": "Reference to Contact (directly updateable through Default_Contact) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "address": { + "$ref": "#/components/schemas/AddressDto" + }, + "default_Contact": { + "$ref": "#/components/schemas/ContactDto" + }, + "assignmentAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentAttachmentDto" + } + }, + "contacts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ContactDto" + } + }, + "assignmentParticipants": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentParticipantDto" + } + }, + "assignmentProductAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentProductAgreementDto" + } + }, + "externalSystemAssignments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAssignmentDto" + } + } + } + }, + "AssignmentGetDefaultsParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentGetDefaultsResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "default_ServiceAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "default_ProductAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "default_AssignmentCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "default_InvoiceTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "default_CasehandlerEmployeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "default_AddressId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "default_ContactId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "enum_InvoiceReserveFixedPriceCalculationId": { + "$ref": "#/components/schemas/InvoiceReserveFixedPriceCalculationEnum" + }, + "enum_InvoiceReserveBilledPriceCalculationId": { + "$ref": "#/components/schemas/InvoiceReserveBilledPriceCalculationEnum" + }, + "default_CoverageRateFixedPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "default_CoverageRateNotFixedPrice": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "AssignmentGetErrorCountParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentGetErrorCountResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteLineCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "documentCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "appointmentCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "participantCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AssignmentGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "AssignmentInvoiceReserveAdjustmentParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceReserveAdjustmentAmount": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "invoiceReserveAdjustmentComment": { + "type": "string", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentMOMDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "assignmentMOMId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productNumber": { + "type": "string", + "description": "Product number for matching various products with original product number as part of their name. \r\nType: string? (Max: 50)", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "selected_UserManual": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "AssignmentMOMUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentMOMId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "AssignmentParticipantDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "assignmentParticipantId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentParticipantIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentParticipantId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_ParticipantStatusId": { + "$ref": "#/components/schemas/ParticipantStatusEnum" + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "externalSystemAssignmentParticipants": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAssignmentParticipantDto" + } + } + } + }, + "AssignmentParticipantGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AssignmentParticipantGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentParticipantId": { + "type": "integer", + "format": "int32" + } + } + }, + "AssignmentParticipantUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentParticipantId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentParticipantIdExternal": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemAssignmentParticipants": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAssignmentParticipantUpsertResultDto" + } + } + } + }, + "AssignmentProductAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "assignmentProductAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "priority": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentProductAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentProductAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "AssignmentProgressEnum": { + "type": "string", + "enum": [ + "NotStarted", + "WorkOrderWritten", + "SentToHpc", + "TimeMatRegistered", + "InvoiceRegistered", + "PartiallyInvoiced", + "PartiallyInvoicedNewRegister", + "PartiallyInvoicedInvoiceRegistered", + "Completed" + ] + }, + "AssignmentProjectReportParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectReportId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentProjectReportResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectReportDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "enum_ProjectReportDetailTypeId": { + "type": "integer", + "format": "int32" + }, + "reportNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "reportText": { + "type": "string", + "nullable": true + }, + "sumTotal": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "sumPeriod": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "sumBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "sumCurrentYear": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "difference": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "differencePercent": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "AssignmentReportDimensionSummaryParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentReportDimensionSummaryResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionDescription": { + "type": "string", + "nullable": true + }, + "dimensionValueId": { + "type": "integer", + "format": "int32" + }, + "serviceHours": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costService": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costProduct": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costOther": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "totalCost": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "totalInvoiced": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "coverage": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "coveragePercentage": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "AssignmentReportMonthlySummaryParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodId_From": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodId_To": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentReportMonthlySummaryResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectPeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "periodName": { + "type": "string", + "nullable": true + }, + "totalCost": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costService": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costProduct": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costOther": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "serviceHours": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "totalInvoiced": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "runningTotalCost": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "runningTotalInvoiced": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "coverage": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "coveragePercentage": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "invoicingSum": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costProductsBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costServiceBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costOtherBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "incomeProductsBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "incomeServiceBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "incomeOtherBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "serviceSpentBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "accumulatedServiceSpentBudget": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "accumulatedServiceHours": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "AssignmentResetHistoricParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentServiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "AssignmentStatusEnum": { + "type": "string", + "enum": [ + "NotStarted", + "InProgress", + "Expired", + "Completed" + ] + }, + "AssignmentTypeEnum": { + "type": "string", + "enum": [ + "Normal", + "Service", + "Internal" + ] + }, + "AssignmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "address": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + }, + "default_Contact": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + }, + "assignmentAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentAttachmentUpsertResultDto" + } + }, + "contacts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + } + }, + "assignmentParticipants": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentParticipantUpsertResultDto" + } + }, + "assignmentProductAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentProductAgreementUpsertResultDto" + } + }, + "externalSystemAssignments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAssignmentUpsertResultDto" + } + } + } + }, + "AttachmentCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "attachmentCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_AttachmentCategoryId": { + "$ref": "#/components/schemas/AttachmentCategoryEnum" + } + } + }, + "AttachmentCategoryEnum": { + "type": "string", + "enum": [ + "Custom", + "MOM", + "Tender" + ] + }, + "AttachmentCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "AttachmentDownloadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "attachmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "AttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "attachmentCategoryId": { + "type": "integer", + "description": "Reference to AttachmentCategory \r\nType: short?", + "format": "int32", + "nullable": true + }, + "azureBlobId": { + "type": "string", + "description": "Type: string? (Max: 1024)", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 1024) \r\nValidation: MultilineText", + "nullable": true + }, + "fileChecksum": { + "type": "string", + "description": "Type: string? (Max: 64)", + "nullable": true + }, + "fileName": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 250)", + "nullable": true + }, + "internal": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nType: int?", + "format": "int32", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sourceExternalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sourceType": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "uri": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "useCommonBlobStore": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_IndustryTypeId": { + "$ref": "#/components/schemas/IndustryTypeEnum" + }, + "enum_MOM_TypeId": { + "$ref": "#/components/schemas/MOM_TypeEnum" + }, + "assignmentAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentAttachmentDto" + } + }, + "externalSystemAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAttachmentDto" + } + } + } + }, + "AttachmentGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "AttachmentGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "attachmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "AttachmentSasResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "attachmentId": { + "type": "integer", + "format": "int32" + }, + "sasToken": { + "type": "string", + "nullable": true + }, + "blobUri": { + "type": "string", + "nullable": true + }, + "blobId": { + "type": "string", + "nullable": true + }, + "firstTimePrepare": { + "type": "boolean" + }, + "contentType": { + "type": "string", + "nullable": true + } + } + }, + "AttachmentUploadByIdDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "attachmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "AttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "assignmentAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AssignmentAttachmentUpsertResultDto" + } + }, + "externalSystemAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemAttachmentUpsertResultDto" + } + } + } + }, + "B64FileResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "fileName": { + "type": "string", + "nullable": true + }, + "b64Content": { + "type": "string", + "nullable": true + } + } + }, + "BoligmappaAttachmentDto": { + "type": "object", + "description": "Boligmappa uploads", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "boligmappaAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "boligmappaFileId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "boligmappaNumber": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "uploadedByBmUserId": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200)", + "nullable": true + }, + "uploadedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment (directly updateable through Attachment) \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachment": { + "$ref": "#/components/schemas/AttachmentDto" + } + } + }, + "BoligmappaAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "boligmappaAttachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "attachment": { + "$ref": "#/components/schemas/AttachmentUpsertResultDto" + } + } + }, + "BoligmappaIndustryTypeEnum": { + "type": "string", + "enum": [ + "Undefined", + "Electrician", + "Plumber", + "AdvisingEngineer", + "Carpenter", + "Painter", + "Mason", + "Tinsmith", + "Contractor", + "Appraisal", + "RealEstateAgent", + "Insurance", + "Architect", + "HousingProducer", + "Builder", + "LandscapingGardener", + "Ventilation", + "Government", + "LocalElectricityAuthority", + "MachineContractor", + "FireAndChimneysweep", + "IntegrationPartner", + "Supplier", + "Producer", + "RoofContractor", + "MachineContractor2", + "Kitchen", + "Stairs", + "Ventilation2", + "Tinsmith2", + "BuildingGoodsStore", + "Painter2", + "TelecomInstaller", + "SunShading", + "AlarmsSecurity", + "Banking", + "HeatPump", + "Novap", + "Glazier", + "FireSecurity", + "Furnishings", + "Fencing", + "SeaContracting", + "Gates", + "StationaryExtinguishers" + ] + }, + "BudgetDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "budgetId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "budgetScenarioIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetScenarioId for the current ExternalSystem", + "nullable": true + }, + "fromProjectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to FromProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "toProjectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ToProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "budgetScenarioId": { + "type": "integer", + "description": "Reference to BudgetScenario \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "fromProjectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nType: int?", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "toProjectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nType: int?", + "format": "int32", + "nullable": true + }, + "externalSystemBudgets": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetDto" + } + } + } + }, + "BudgetLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "budgetLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetLineIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetLineId for the current ExternalSystem", + "nullable": true + }, + "budgetIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetId for the current ExternalSystem", + "nullable": true + }, + "projectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "budgetId": { + "type": "integer", + "description": "Reference to Budget \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetValue": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "Reference to WageCodeReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "budgetLinePeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/BudgetLinePeriodDto" + } + }, + "externalSystemBudgetLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetLineDto" + } + } + } + }, + "BudgetLinePeriodDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "budgetLinePeriodId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetLinePeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetLinePeriodId for the current ExternalSystem", + "nullable": true + }, + "budgetLineIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetLineId for the current ExternalSystem", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "budgetValue": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "budgetLineId": { + "type": "integer", + "description": "Reference to BudgetLine \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "externalSystemBudgetLinePeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetLinePeriodDto" + } + } + } + }, + "BudgetLinePeriodUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetLinePeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetLinePeriodIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemBudgetLinePeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetLinePeriodUpsertResultDto" + } + } + } + }, + "BudgetLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "budgetLinePeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/BudgetLinePeriodUpsertResultDto" + } + }, + "externalSystemBudgetLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetLineUpsertResultDto" + } + } + } + }, + "BudgetScenarioDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "budgetScenarioId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetScenarioIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetScenarioId for the current ExternalSystem", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "isDefault": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemBudgetScenarios": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetScenarioDto" + } + } + } + }, + "BudgetScenarioUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetScenarioId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetScenarioIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemBudgetScenarios": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetScenarioUpsertResultDto" + } + } + } + }, + "BudgetUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemBudgets": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemBudgetUpsertResultDto" + } + } + } + }, + "CalculatePriceForProductPickerDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32" + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "CalculatePriceForProductPickerDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "details": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/CalculatePriceForProductPickerDetailDto" + } + }, + "assignmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "CalculatePriceForProductPickerResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32" + }, + "productName": { + "type": "string", + "nullable": true + }, + "productNumber": { + "type": "string", + "nullable": true + }, + "isVarious": { + "type": "boolean" + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "surchargePercentInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "listPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "customerPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "enum_CostPriceSourceId": { + "$ref": "#/components/schemas/CostPriceSourceEnum" + } + } + }, + "Client": { + "type": "object", + "additionalProperties": false, + "properties": { + "clientId": { + "type": "string", + "nullable": true + }, + "roleId": { + "type": "integer", + "format": "int32" + } + } + }, + "ClientLevelEnum": { + "type": "string", + "enum": [ + "None", + "Client", + "Corporate", + "Global", + "System" + ] + }, + "CommandEnum": { + "type": "string", + "enum": [ + "NotSet", + "SetInvoiceLineRule" + ] + }, + "ContactDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "contactId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "contactIdExternal": { + "type": "string", + "description": "External ID corresponding to ContactId for the current ExternalSystem", + "nullable": true + }, + "email": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: Email", + "nullable": true + }, + "invoiceSendAttachment": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceSendCopy": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mobile": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "name": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "name2": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "parentContactId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "phone": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "title": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "preferred_Enum_MessageChannelId": { + "$ref": "#/components/schemas/MessageChannelEnum" + }, + "externalSystemContacts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemContactDto" + } + } + } + }, + "ContactGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ContactGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "contactId": { + "type": "integer", + "format": "int32" + } + } + }, + "ContactMessageDto": { + "type": "object", + "description": "Incoming and outgoing messages to contacts, typically through SMS or similar message channels.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "contactMessageId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "contactIdExternal": { + "type": "string", + "description": "External ID corresponding to ContactId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "contactId": { + "type": "integer", + "description": "Reference to Contact \r\nType: int?", + "format": "int32", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "externalMessageId": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "inboundReadByUserUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "inboundReceivedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "isInbound": { + "type": "boolean", + "description": "Should only be set on create operations, and will cause an error if any attempt is made to set this value during an update. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "messageGroup": { + "type": "string", + "description": "Type: Guid?", + "format": "uuid", + "nullable": true + }, + "messageText": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 1024)", + "nullable": true + }, + "mobile": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "outboundDeliveredUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "outboundReadByContactUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "outboundSendWaitUntilUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "outboundSentUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "segmentCount": { + "type": "integer", + "description": "Type: short?", + "format": "int32", + "nullable": true + }, + "sendTryCount": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "userId": { + "type": "integer", + "description": "Reference to User \r\nType: int?", + "format": "int32", + "nullable": true + }, + "enum_MessageChannelId": { + "$ref": "#/components/schemas/MessageChannelEnum" + }, + "enum_MessageDeliveryStatusId": { + "$ref": "#/components/schemas/MessageDeliveryStatusEnum" + } + } + }, + "ContactMessageUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "contactMessageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ContactUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "contactId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "contactIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemContacts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemContactUpsertResultDto" + } + } + } + }, + "ContractTypeEnum": { + "type": "string", + "enum": [ + "Billed", + "Contract", + "ChangeMessage", + "Return" + ] + }, + "CostPriceSourceEnum": { + "type": "string", + "enum": [ + "NotSet", + "SupplierInvoice", + "HandheldDevice", + "ManualInput", + "StockAvgUpdOnAdd", + "StockFIFO", + "ProductCatalogue" + ] + }, + "CountryDto": { + "type": "object", + "description": "https://countrycode.org/ shows some possible values.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "countryId": { + "type": "string", + "description": "__Primary key__ \r\n__When creating records:__ ___Mandatory___ \r\nType: string (Max: 2)", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "phonePrefix": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 10) \r\nValidation: Phone", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "CountryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "countryId": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "CreateCreditNoteCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "CreateInvoiceCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "CreateUserCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "userId": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "defaultLanguage": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "secondaryEmail": { + "type": "string", + "nullable": true + }, + "isClientAdmin": { + "type": "boolean" + }, + "isInactive": { + "type": "boolean" + }, + "isPayrollUser": { + "type": "boolean", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sendEmail": { + "type": "boolean" + }, + "enableTwoFactor": { + "type": "boolean" + }, + "emailConfirmation": { + "type": "boolean" + }, + "clients": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/Client" + } + } + } + }, + "CreateUserData": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "sys_RowState": { + "type": "string", + "nullable": true + }, + "textId": { + "type": "string", + "nullable": true + } + } + }, + "CustomDimensionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionIdExternal": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "isInvoiceable": { + "type": "boolean", + "nullable": true + }, + "enum_DimensionLevelId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "useOnProductNoteLine": { + "type": "boolean", + "nullable": true + }, + "useOnService": { + "type": "boolean", + "nullable": true + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "active": { + "type": "boolean", + "description": "Active field recursively controls dimension use in context of assignment/project\r\nWhen passing true value it is required for assignmentId or projectId to be present\r\n__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Id of assignment using dimension\r\nIt is not allowed for both projectId and assignmentId to be present on the same dto \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "nullable": true + }, + "invoice": { + "type": "boolean", + "nullable": true + }, + "dimensionIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Id of project using dimension\r\nIt is not allowed for both projectId and assignmentId to be present on the same dto \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "nullable": true + }, + "dimensionValues": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/CustomDimensionValueDto" + } + } + } + }, + "CustomDimensionValueDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "dimensionValueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueIdExternal": { + "type": "string", + "nullable": true + }, + "parentDimensionValueIdExternal": { + "type": "string", + "nullable": true + }, + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "selectable": { + "type": "boolean", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "parentDimensionValueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fixedPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "startDateTimeUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTimeUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "completed": { + "type": "boolean", + "nullable": true + }, + "invoiceText": { + "type": "string", + "nullable": true + }, + "active": { + "type": "boolean", + "description": "Active field recursively controls dimension value use (current level and its children) in context of assignment/project\r\nWhen passing true it's required for assignmentId or projectId to be present on top level dimension dto\r\n__When creating records:__ ___Default value = true___", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "nullable": true + } + } + }, + "CustomInvoiceLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineId": { + "type": "integer", + "format": "int32" + } + } + }, + "CustomerAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "customerAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "CustomerAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "customerId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "CustomerAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "CustomerDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "default_AssignmentCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_AssignmentCategoryId for the current ExternalSystem", + "nullable": true + }, + "default_InvoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "default_ProductAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "invoice_CustomerIdExternal": { + "type": "string", + "description": "External ID corresponding to Invoice_CustomerId for the current ExternalSystem", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "description": "External ID corresponding to PaymentTermId for the current ExternalSystem", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "bankAccountNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 1024) \r\nValidation: MultilineText", + "nullable": true + }, + "countryId": { + "type": "string", + "description": "Reference to Country \r\nType: string? (Max: 2)", + "nullable": true + }, + "creditLimit": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "customerNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "default_AssignmentCategoryId": { + "type": "integer", + "description": "Reference to AssignmentCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_InvoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_ProductAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "email": { + "type": "string", + "description": "Type: string? (Max: 150) \r\nValidation: Email", + "nullable": true + }, + "fax": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "inactive": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "internal": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoice_CustomerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceConsolidate": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceElectronic": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceElectronicEmail": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: Email", + "nullable": true + }, + "invoiceElectronicTarget": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "invoiceReminder": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceVAT": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mobile": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "mobile2": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "name": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "name2": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "organizationNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "description": "Reference to PaymentTerm \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "phone": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "private": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "timeSheetAttachmentsNumber": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "enum_DebtCollectionStatusId": { + "$ref": "#/components/schemas/DebtCollectionStatusEnum" + }, + "default_AddressId": { + "type": "integer", + "description": "Reference to Address (directly updateable through Default_Address) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_ContactId": { + "type": "integer", + "description": "Reference to Contact (directly updateable through Default_Contact) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoice_AddressId": { + "type": "integer", + "description": "Reference to Address (directly updateable through Invoice_Address) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_Address": { + "$ref": "#/components/schemas/AddressDto" + }, + "invoice_Address": { + "$ref": "#/components/schemas/AddressDto" + }, + "default_Contact": { + "$ref": "#/components/schemas/ContactDto" + }, + "addresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AddressDto" + } + }, + "customerAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/CustomerAttachmentDto" + } + }, + "contacts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ContactDto" + } + }, + "customerProductAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/CustomerProductAgreementDto" + } + }, + "externalSystemCustomers": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemCustomerDto" + } + } + } + }, + "CustomerGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "CustomerGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "customerId": { + "type": "integer", + "format": "int32" + } + } + }, + "CustomerProductAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "customerProductAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "priority": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "CustomerProductAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "customerProductAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "CustomerUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "default_Address": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + }, + "invoice_Address": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + }, + "default_Contact": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + }, + "addresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + } + }, + "customerAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/CustomerAttachmentUpsertResultDto" + } + }, + "contacts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + } + }, + "customerProductAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/CustomerProductAgreementUpsertResultDto" + } + }, + "externalSystemCustomers": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemCustomerUpsertResultDto" + } + } + } + }, + "DailyMaintenanceRequestDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "mode": { + "type": "string", + "nullable": true + } + } + }, + "DailyMaintenanceResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "message": { + "type": "string", + "nullable": true + } + } + }, + "DashboardCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "isGrouped": { + "type": "boolean" + }, + "parameterized": { + "type": "boolean" + }, + "widgets": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/WidgetData" + } + }, + "filters": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/Filter" + } + } + } + }, + "DashboardResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "widgets": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/WidgetData" + } + }, + "debug": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + } + }, + "DataValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "value": { + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + }, + "state": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "link": { + "type": "string", + "nullable": true + }, + "group": { + "type": "boolean", + "nullable": true + }, + "items": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DataValue" + } + } + } + }, + "DebtCollectionStatusEnum": { + "type": "string", + "enum": [ + "NotInUse", + "Invoices", + "Customer" + ] + }, + "DeleteInvoiceLineCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineId": { + "type": "integer", + "format": "int32" + } + } + }, + "DeleteOldHistoryRequestDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "deleteOlderThan": { + "type": "string", + "format": "date-time", + "nullable": true + } + } + }, + "DeleteOldHistoryResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "message": { + "type": "string", + "nullable": true + } + } + }, + "DepartmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "departmentNumber": { + "type": "integer", + "description": "Type: short?", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "inactive": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "marginMinPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "addressId": { + "type": "integer", + "description": "Reference to Address (directly updateable through Address) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "address": { + "$ref": "#/components/schemas/AddressDto" + }, + "externalSystemDepartments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDepartmentDto" + } + }, + "storageDepartments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StorageDepartmentDto" + } + } + } + }, + "DepartmentGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "DepartmentGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "departmentId": { + "type": "integer", + "format": "int32" + } + } + }, + "DepartmentPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "departmentNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "DepartmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "address": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + }, + "externalSystemDepartments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDepartmentUpsertResultDto" + } + }, + "storageDepartments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StorageDepartmentUpsertResultDto" + } + } + } + }, + "DimensionCopyParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "copyFromDimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "isInvoiceable": { + "type": "boolean", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "useOnService": { + "type": "boolean", + "nullable": true + }, + "useOnProductNoteLine": { + "type": "boolean", + "nullable": true + } + } + }, + "DimensionCopyResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "DimensionFilter": { + "type": "string", + "enum": [ + "Active", + "Global", + "Project", + "Assignment" + ] + }, + "DimensionForEntityResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionId": { + "type": "integer", + "format": "int32" + }, + "code": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "active": { + "type": "boolean", + "nullable": true + }, + "isInvoiceable": { + "type": "boolean", + "nullable": true + }, + "useOnProductNoteLine": { + "type": "boolean", + "nullable": true + }, + "useOnService": { + "type": "boolean", + "nullable": true + }, + "invoice": { + "type": "boolean", + "nullable": true + }, + "enum_DimensionLevelId": { + "$ref": "#/components/schemas/DimensionLevelEnum" + }, + "sys_CreatedDateUTC": { + "type": "string", + "format": "date-time", + "nullable": true + } + } + }, + "DimensionGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "DimensionGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionId": { + "type": "integer", + "format": "int32" + } + } + }, + "DimensionLevelEnum": { + "type": "string", + "enum": [ + "Global", + "Project", + "Assignment" + ] + }, + "DimensionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "dimensionValues": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DimensionValueUpsertResultDto" + } + }, + "externalSystemDimensions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDimensionUpsertResultDto" + } + } + } + }, + "DimensionUseDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "dimensionUseId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "dimensionUseIdExternal": { + "type": "string", + "description": "External ID corresponding to DimensionUseId for the current ExternalSystem", + "nullable": true + }, + "externalSystemDimensionUses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDimensionUseDto" + } + } + } + }, + "DimensionUseUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionUseId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionUseIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemDimensionUses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDimensionUseUpsertResultDto" + } + } + } + }, + "DimensionValueAgGridResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionValueId": { + "type": "integer", + "format": "int32" + }, + "code": { + "type": "string", + "nullable": true + }, + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "parentDimensionValueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "selectable": { + "type": "boolean" + }, + "sys_CreatedDateUTC": { + "type": "string", + "format": "date-time" + }, + "treePath": { + "type": "array", + "nullable": true, + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "DimensionValueForEntityResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionValueId": { + "type": "integer", + "format": "int32" + }, + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "enum_DimensionLevelId": { + "$ref": "#/components/schemas/DimensionLevelEnum" + }, + "code": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "active": { + "type": "boolean", + "nullable": true + }, + "selectable": { + "type": "boolean", + "nullable": true + }, + "fixedPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "sys_CreatedDateUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startDateTimeUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTimeUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "invoiceText": { + "type": "string", + "nullable": true + }, + "completed": { + "type": "boolean", + "nullable": true + }, + "treePath": { + "type": "array", + "nullable": true, + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "DimensionValueGetNotSyncedAssignmentDimensionParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "DimensionValueGetNotSyncedAssignmentDimensionResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionValueId": { + "type": "integer", + "format": "int32" + } + } + }, + "DimensionValueGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "DimensionValueGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionValueId": { + "type": "integer", + "format": "int32" + } + } + }, + "DimensionValueUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionValueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemDimensionValues": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDimensionValueUpsertResultDto" + } + } + } + }, + "DimensionValueUseDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "dimensionValueUseId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "dimensionValueUseIdExternal": { + "type": "string", + "description": "External ID corresponding to DimensionValueUseId for the current ExternalSystem", + "nullable": true + }, + "externalSystemDimensionValueUses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDimensionValueUseDto" + } + } + } + }, + "DimensionValueUseUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionValueUseId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueUseIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemDimensionValueUses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemDimensionValueUseUpsertResultDto" + } + } + } + }, + "DiscountGroupDto": { + "type": "object", + "description": "Products may change their discount groups over time. Old purchase agreements may therefore be invalid after such a change.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "discountGroupId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "discountGroupCode": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "DiscountGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "discountGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "EmployeeAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "employeeAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "EmployeeAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "employeeId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "EmployeeAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "EmployeeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to JobCategoryId for the current ExternalSystem", + "nullable": true + }, + "approveWageRequired": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "dateOfBirth": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "emailPrivate": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: Email", + "nullable": true + }, + "emailWork": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: Email", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "description": "Reference to EmployeeInvoiceCategory \r\nType: short?", + "format": "int32", + "nullable": true + }, + "employeeNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "endDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "hasMobileDevice": { + "type": "boolean", + "description": "The employee has a mobile device assigned. Typically used when integrating with SpeedyCraft. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "hoursPerWeek": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "Type: string? (Max: 4000)", + "nullable": true + }, + "isCaseHandler": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isHired": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "jobCategoryEndDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "description": "Reference to JobCategory \r\nType: short?", + "format": "int32", + "nullable": true + }, + "jobCategoryStartDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "jobPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "note": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "phoneMobile": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "phonePrivate": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "phoneWork": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "startDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_EmployeeStatusId": { + "$ref": "#/components/schemas/EmployeeStatusEnum" + }, + "default_AddressId": { + "type": "integer", + "description": "Reference to Address (directly updateable through Default_Address) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_Address": { + "$ref": "#/components/schemas/AddressDto" + }, + "employee_Competencies": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/Employee_CompetencyDto" + } + }, + "addresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AddressDto" + } + }, + "employeeAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/EmployeeAttachmentDto" + } + }, + "externalSystemEmployees": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemEmployeeDto" + } + } + } + }, + "EmployeeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "EmployeeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "employeeId": { + "type": "integer", + "format": "int32" + } + } + }, + "EmployeeInvoiceCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: Name", + "nullable": true + }, + "number": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemEmployeeInvoiceCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemEmployeeInvoiceCategoryDto" + } + } + } + }, + "EmployeeInvoiceCategoryGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "EmployeeInvoiceCategoryGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "employeeInvoiceCategoryId": { + "type": "integer", + "format": "int32" + } + } + }, + "EmployeeInvoiceCategoryPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "number": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "EmployeeInvoiceCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemEmployeeInvoiceCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemEmployeeInvoiceCategoryUpsertResultDto" + } + } + } + }, + "EmployeeStatusEnum": { + "type": "string", + "enum": [ + "NotSet", + "Regular", + "Unpaid", + "TemporarilyLaidOff", + "Ended", + "TemporarilyStopped" + ] + }, + "EmployeeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "default_Address": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + }, + "employee_Competencies": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/Employee_CompetencyUpsertResultDto" + } + }, + "addresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + } + }, + "employeeAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/EmployeeAttachmentUpsertResultDto" + } + }, + "externalSystemEmployees": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemEmployeeUpsertResultDto" + } + } + } + }, + "Employee_CompetencyDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "employee_CompetencyId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "competencyId": { + "type": "integer", + "description": "Reference to Competency \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "Employee_CompetencyUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "employee_CompetencyId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "EntityNameForDimension": { + "type": "string", + "enum": [ + "Service", + "ProductNoteLine", + "Invoice" + ] + }, + "ExportPayrollFileDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "wagePeriodId": { + "type": "integer", + "format": "int32" + }, + "payrollFormat": { + "$ref": "#/components/schemas/PayrollFormatEnum" + }, + "separatorChar": { + "type": "string" + }, + "includeAssignmentNumber": { + "type": "boolean" + }, + "includeProjectNumber": { + "type": "boolean" + }, + "textEncoding": { + "$ref": "#/components/schemas/TextEncodingEnum" + }, + "includeFormatInfoInFileName": { + "type": "boolean" + } + } + }, + "ExternalSystemAddressDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemAddressId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "addressIdExternal": { + "type": "string", + "description": "External ID corresponding to AddressId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "addressId": { + "type": "integer", + "description": "Reference to Address \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemAddressUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "addressId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "addressIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemAppointmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemAppointmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "appointmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AppointmentId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "appointmentId": { + "type": "integer", + "description": "Reference to Appointment \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemAppointmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "appointmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "appointmentIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemAssignmentCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemAssignmentCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentCategoryId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "assignmentCategoryId": { + "type": "integer", + "description": "Reference to AssignmentCategory \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemAssignmentCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemAssignmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemAssignmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemAssignmentParticipantDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemAssignmentParticipantId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentParticipantIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentParticipantId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "assignmentParticipantId": { + "type": "integer", + "description": "Reference to AssignmentParticipant \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemAssignmentParticipantUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentParticipantId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentParticipantIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemAssignmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemBudgetDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemBudgetId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "budgetId": { + "type": "integer", + "description": "Reference to Budget \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemBudgetLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemBudgetLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetLineIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetLineId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "budgetLineId": { + "type": "integer", + "description": "Reference to BudgetLine \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemBudgetLinePeriodDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemBudgetLinePeriodId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetLinePeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetLinePeriodId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "budgetLinePeriodId": { + "type": "integer", + "description": "Reference to BudgetLinePeriod \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemBudgetLinePeriodUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetLinePeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetLinePeriodIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemBudgetLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetLineIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemBudgetScenarioDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemBudgetScenarioId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "budgetScenarioIdExternal": { + "type": "string", + "description": "External ID corresponding to BudgetScenarioId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "budgetScenarioId": { + "type": "integer", + "description": "Reference to BudgetScenario \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemBudgetScenarioUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetScenarioId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetScenarioIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemBudgetUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "budgetId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "budgetIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemCheckAnySyncNeededParameters": { + "type": "object", + "additionalProperties": false + }, + "ExternalSystemCheckAnySyncNeededResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncNeeded": { + "type": "boolean", + "nullable": true + } + } + }, + "ExternalSystemCheckSyncNeededParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "externalSystemName": { + "type": "string", + "nullable": true + }, + "syncAllRequest_Name": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemCheckSyncNeededResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncNeeded": { + "type": "boolean", + "nullable": true + } + } + }, + "ExternalSystemConfigureSpeedyCraftParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "tenantId": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemContactDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemContactId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "contactIdExternal": { + "type": "string", + "description": "External ID corresponding to ContactId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "contactId": { + "type": "integer", + "description": "Reference to Contact \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemContactUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "contactId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "contactIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemCustomerDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemCustomerId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemCustomerUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemDepartmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemDepartmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemDepartmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemDimensionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemDimensionUseDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemDimensionUseId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "dimensionUseIdExternal": { + "type": "string", + "description": "External ID corresponding to DimensionUseId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "dimensionUseId": { + "type": "integer", + "description": "Reference to DimensionUse \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemDimensionUseUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionUseId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionUseIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemDimensionValueUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionValueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemDimensionValueUseDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemDimensionValueUseId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "dimensionValueUseIdExternal": { + "type": "string", + "description": "External ID corresponding to DimensionValueUseId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "dimensionValueUseId": { + "type": "integer", + "description": "Reference to DimensionValueUse \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemDimensionValueUseUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "dimensionValueUseId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueUseIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemDto": { + "type": "object", + "description": "External systems such as payroll, ERP or handheld. Example: Visma Payroll, SpeedyCraft", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "integrationConfig": { + "type": "string", + "description": "Type: string?", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemExtraDatas": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemExtraDataDto" + } + } + } + }, + "ExternalSystemEmployeeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemEmployeeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemEmployeeInvoiceCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemEmployeeInvoiceCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "description": "Reference to EmployeeInvoiceCategory \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemEmployeeInvoiceCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemEmployeeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemExtraDataDto": { + "type": "object", + "description": "Key value list with data for external systems. Primarily used by integrations.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemExtraDataId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "key": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "value": { + "type": "string", + "description": "Type: string?", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemExtraDataUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemExtraDataId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemGetOrCreateExternalSystemIDParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "systemName": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemGetOrCreateExternalSystemIDResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemGetSyncStatusAllParameters": { + "type": "object", + "additionalProperties": false + }, + "ExternalSystemGetSyncStatusAllResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncName": { + "type": "string", + "nullable": true + }, + "syncType": { + "type": "string", + "nullable": true + }, + "syncIsRunning": { + "type": "boolean", + "nullable": true + }, + "syncRequestedDateUTC": { + "type": "string", + "format": "date-time", + "nullable": true + } + } + }, + "ExternalSystemGetSyncStatusParameters": { + "type": "object", + "additionalProperties": false + }, + "ExternalSystemGetSyncStatusResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncName": { + "type": "string", + "nullable": true + }, + "syncType": { + "type": "string", + "nullable": true + }, + "syncIsRunning": { + "type": "boolean", + "nullable": true + }, + "syncRequestedDateUTC": { + "type": "string", + "format": "date-time", + "nullable": true + } + } + }, + "ExternalSystemIndustryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemIndustryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\nType: byte?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemIndustryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemInvoiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemInvoiceId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "invoiceId": { + "type": "integer", + "description": "Reference to Invoice \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemInvoiceLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemInvoiceLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "invoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "invoiceLineId": { + "type": "integer", + "description": "Reference to InvoiceLine \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemInvoiceLineRuleDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemInvoiceLineRuleId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineRuleId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "invoiceLineRuleId": { + "type": "integer", + "description": "Reference to InvoiceLineRule \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemInvoiceLineRuleUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemInvoiceLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemInvoiceTemplateDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemInvoiceTemplateDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceTemplateDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceTemplateDetailId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "invoiceTemplateDetailId": { + "type": "integer", + "description": "Reference to InvoiceTemplateDetail \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemInvoiceTemplateDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateDetailIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemInvoiceTemplateDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemInvoiceTemplateId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "invoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemInvoiceTemplateUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemInvoiceUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemJobCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemJobCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to JobCategoryId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "jobCategoryId": { + "type": "integer", + "description": "Reference to JobCategory \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemJobCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemLedgerAccountDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemLedgerAccountId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "ledgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "ledgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemLedgerAccountUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ledgerAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ledgerAccountIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemPaymentTermDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemPaymentTermId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "description": "External ID corresponding to PaymentTermId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "paymentTermId": { + "type": "integer", + "description": "Reference to PaymentTerm \r\nType: byte?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemPaymentTermUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemPermissionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemPermissionId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "permissionIdExternal": { + "type": "string", + "description": "External ID corresponding to PermissionId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "permissionId": { + "type": "integer", + "description": "Reference to Permission \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemPermissionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "permissionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "permissionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProductAgreementDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProductAgreementDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productAgreementDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementDetailId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "productAgreementDetailId": { + "type": "integer", + "description": "Reference to ProductAgreementDetail \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProductAgreementDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productAgreementDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productAgreementDetailIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProductAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProductAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProductAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProductDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProductId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProductNoteDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProductNoteId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductNoteId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "productNoteId": { + "type": "integer", + "description": "Reference to ProductNote \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProductNoteLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProductNoteLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productNoteLineIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductNoteLineId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "productNoteLineId": { + "type": "integer", + "description": "Reference to ProductNoteLine \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProductNoteLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProductNoteUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProductSupplierIndustryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProductSupplierIndustryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProductSupplierIndustryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProductUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProjectAccountDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProjectAccountId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "projectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProjectAccountUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectAccountIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProjectDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProjectId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProjectGroupDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProjectGroupId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "projectGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectGroupId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "projectGroupId": { + "type": "integer", + "description": "Reference to ProjectGroup \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProjectGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectGroupIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProjectPeriodDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProjectPeriodId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "projectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProjectPeriodUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProjectTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemProjectTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "projectTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectTypeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "projectTypeId": { + "type": "integer", + "description": "Reference to ProjectType \r\nType: byte?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemProjectTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemProjectUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemRequestSyncParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncType": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemResetSyncFlagParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "externalSystemName": { + "type": "string", + "nullable": true + }, + "syncAllRequest_Name": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemRoleDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemRoleId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "roleIdExternal": { + "type": "string", + "description": "External ID corresponding to RoleId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "roleId": { + "type": "integer", + "description": "Reference to Role \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemRolePermissionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemRolePermissionId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "rolePermissionIdExternal": { + "type": "string", + "description": "External ID corresponding to RolePermissionId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "rolePermissionId": { + "type": "integer", + "description": "Reference to RolePermission \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemRolePermissionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rolePermissionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rolePermissionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemRoleUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "roleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "roleIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemServiceAgreementDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemServiceAgreementDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "serviceAgreementDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementDetailId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "serviceAgreementDetailId": { + "type": "integer", + "description": "Reference to ServiceAgreementDetail \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemServiceAgreementDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementDetailIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemServiceAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemServiceAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "serviceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemServiceAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemServiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemServiceId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "serviceIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "serviceId": { + "type": "integer", + "description": "Reference to Service \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemServiceUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemStockCountDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemStockCountId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockCountIdExternal": { + "type": "string", + "description": "External ID corresponding to StockCountId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "stockCountId": { + "type": "integer", + "description": "Reference to StockCount \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemStockCountLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemStockCountLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockCountLineIdExternal": { + "type": "string", + "description": "External ID corresponding to StockCountLineId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "stockCountLineId": { + "type": "integer", + "description": "Reference to StockCountLine \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemStockCountLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockCountLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockCountLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemStockCountUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockCountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockCountIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemStockDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemStockId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockIdExternal": { + "type": "string", + "description": "External ID corresponding to StockId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "stockId": { + "type": "integer", + "description": "Reference to Stock \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemStockTransactionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemStockTransactionId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockTransactionIdExternal": { + "type": "string", + "description": "External ID corresponding to StockTransactionId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "stockTransactionId": { + "type": "integer", + "description": "Reference to StockTransaction \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemStockTransactionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockTransactionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockTransactionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemStockUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemStorageDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemStorageId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemStorageTransferDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemStorageTransferId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "storageTransferIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageTransferId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "storageTransferId": { + "type": "integer", + "description": "Reference to StorageTransfer \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemStorageTransferUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageTransferId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageTransferIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemStorageUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemSupplierDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemSupplierId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "supplierId": { + "type": "integer", + "description": "Reference to Supplier \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemSupplierIndustryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemSupplierIndustryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemSupplierIndustryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemSupplierInvoiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemSupplierInvoiceId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "supplierInvoiceId": { + "type": "integer", + "description": "Reference to SupplierInvoice \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemSupplierInvoiceLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemSupplierInvoiceLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierInvoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "supplierInvoiceLineId": { + "type": "integer", + "description": "Reference to SupplierInvoiceLine \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemSupplierInvoiceLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemSupplierInvoiceUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemSupplierUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ExternalSystemSyncAllRequestedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "externalSystemName": { + "type": "string", + "nullable": true + }, + "syncAllRequestFlags": { + "type": "string", + "nullable": true + }, + "syncAllRequest_Name": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemExtraDatas": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemExtraDataUpsertResultDto" + } + } + } + }, + "ExternalSystemUserRoleDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemUserRoleId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "userRoleIdExternal": { + "type": "string", + "description": "External ID corresponding to UserRoleId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "userRoleId": { + "type": "integer", + "description": "Reference to UserRole \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemUserRoleUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "userRoleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "userRoleIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemVATRateDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemVATRateId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemVATRateUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "vatRateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "vatRateIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWageCodeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWageCodeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wageCodeId": { + "type": "integer", + "description": "Reference to WageCode \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWageCodeReportCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWageCodeReportCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "Reference to WageCodeReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWageCodeReportCategoryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWageCodeReportCategoryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryTypeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wageCodeReportCategoryTypeId": { + "type": "integer", + "description": "Reference to WageCodeReportCategoryType \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWageCodeReportCategoryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wageCodeReportCategoryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryTypeIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWageCodeReportCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wageCodeReportCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWageCodeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wageCodeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWageGroupDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWageGroupId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to WageGroupId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wageGroupId": { + "type": "integer", + "description": "Reference to WageGroup \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWageGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wageGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageGroupIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWagePeriodDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWagePeriodId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "wagePeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to WagePeriodId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wagePeriodId": { + "type": "integer", + "description": "Reference to WagePeriod \r\nType: int?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWagePeriodUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wagePeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wagePeriodIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWageRateDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWageRateId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageRateIdExternal": { + "type": "string", + "description": "External ID corresponding to WageRateId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wageRateId": { + "type": "integer", + "description": "Reference to WageRate \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWageRateEmployeeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "externalSystemWageRateEmployeeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageRateEmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageRateEmployeeId for the current ExternalSystem", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "The entity ID in the external system. Primarily used for syncing entities in integrations. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Time spent on the last successful or unsuccessful data transfer to an external system. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + }, + "wageRateEmployeeId": { + "type": "integer", + "description": "Reference to WageRateEmployee \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ExternalSystemWageRateEmployeeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wageRateEmployeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageRateEmployeeIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "ExternalSystemWageRateUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "wageRateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageRateIdExternal": { + "type": "string", + "nullable": true + } + } + }, + "FileDownloadModeEnum": { + "type": "string", + "enum": [ + "AutoDetect", + "LegacyFTP", + "SFTP", + "FTPS" + ] + }, + "Filter": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "value": { + "nullable": true + } + } + }, + "GetAssignmentIdsForChangedAssignmentDimensionUseAggregatesResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "GetCustomerIdsForChangedCustomerAddressContactAggregatesResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "customerId": { + "type": "integer", + "format": "int32" + }, + "rowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "GetDimensionsMetaDataResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimensionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "columnId": { + "type": "string", + "nullable": true + }, + "headerName": { + "type": "string", + "nullable": true + }, + "enum_DimensionLevelId": { + "$ref": "#/components/schemas/DimensionLevelEnum" + }, + "allowedValues": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + }, + "GetIntegrationSyncStatusFromCacheRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "integrationName": { + "type": "string", + "nullable": true + } + } + }, + "GetInvoiceResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + }, + "invoiceNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dueDate": { + "type": "string", + "format": "date-time" + }, + "invoiceDate": { + "type": "string", + "format": "date-time" + }, + "assignmentId": { + "type": "integer", + "format": "int32" + }, + "assignmentNumber": { + "type": "integer", + "format": "int32" + }, + "internalReference": { + "type": "string", + "nullable": true + }, + "externalReference": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32" + }, + "projectName": { + "type": "string", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32" + }, + "customerName": { + "type": "string", + "nullable": true + }, + "customerReference": { + "type": "string", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "format": "int32" + }, + "paymentTermDescription": { + "type": "string", + "nullable": true + }, + "wholesalerName": { + "type": "string", + "nullable": true + }, + "storageName": { + "type": "string", + "nullable": true + }, + "vatFree": { + "type": "boolean" + }, + "updateStorage": { + "type": "boolean" + }, + "costToAssignment": { + "type": "boolean" + }, + "overrideWholesaler": { + "type": "boolean" + }, + "invoiceComment": { + "type": "string", + "nullable": true + }, + "note": { + "type": "string", + "nullable": true + }, + "invoiceTotal": { + "type": "number", + "format": "decimal" + }, + "totalCost": { + "type": "number", + "format": "decimal" + }, + "coverage": { + "type": "number", + "format": "decimal" + }, + "weekNumber": { + "type": "integer", + "format": "int32" + }, + "periodNumber": { + "type": "integer", + "format": "int32" + }, + "enum_InvoiceStatusId": { + "type": "integer", + "format": "int32" + }, + "fixedPriceAmount": { + "type": "number", + "format": "decimal" + }, + "invoice_CustomerId": { + "type": "integer", + "format": "int32" + }, + "invoice_CustomerName": { + "type": "string", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "canEditDates": { + "type": "boolean" + }, + "useDimensions": { + "type": "boolean" + }, + "customerComment": { + "type": "string", + "nullable": true + }, + "assignmentDescription": { + "type": "string", + "nullable": true + }, + "attachServiceListAsPDF": { + "type": "boolean" + } + } + }, + "ImportFileDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "importFileId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "autoImport": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "azureBlobIdExt": { + "type": "string", + "description": "Type: string? (Max: 255)", + "nullable": true + }, + "downloadedDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "importedDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "importMessage": { + "type": "string", + "description": "Type: string?", + "nullable": true + }, + "localHashCode": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "remainingDownloadTryCount": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "remainingImportTryCount": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "sourceAutoDeleteAfterImport": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sourceDeletedDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sourceFileName": { + "type": "string", + "description": "Type: string? (Max: 255)", + "nullable": true + }, + "sourceFileSize": { + "type": "integer", + "description": "Type: long?", + "format": "int64", + "nullable": true + }, + "sourceHashCode": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "sourceLastUpdatedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "supplierIndustryTypeFtpInfoId": { + "type": "integer", + "description": "Reference to SupplierIndustryTypeFtpInfo \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_ImportFormatId": { + "$ref": "#/components/schemas/ImportFormatEnum" + }, + "enum_ImportStatusId": { + "$ref": "#/components/schemas/ImportStatusEnum" + }, + "enum_ImportTypeId": { + "$ref": "#/components/schemas/ImportTypeEnum" + } + } + }, + "ImportFileUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "importFileId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ImportFormatEnum": { + "type": "string", + "enum": [ + "NotSet", + "RsKalk", + "BrDahl", + "Comfort", + "PrisCon", + "Nelfo4", + "BrDahlXml", + "Synergo", + "Custom" + ] + }, + "ImportFrequencyEnum": { + "type": "string", + "enum": [ + "Manual", + "Month", + "Week", + "Day" + ] + }, + "ImportInvoiceCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32" + }, + "invoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "ImportInvoiceWithDataCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "vatFree": { + "type": "boolean" + } + } + }, + "ImportStatusEnum": { + "type": "string", + "enum": [ + "AwaitingManualApproval", + "ReadyForDownload", + "DownloadStarted", + "Downloaded", + "ReadyForImport", + "ImportStarted", + "ImportCompletedOK", + "FailedImport", + "FailedDownload", + "FailedTimeout", + "FailedUnknown", + "AwaitingProducts" + ] + }, + "ImportTypeEnum": { + "type": "string", + "enum": [ + "AutoDetect", + "ProductCatalog", + "ProductAgreement", + "Autofakt", + "PurchaseOrder", + "PurchaseOrderConfirmation" + ] + }, + "IndexRateGroupDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "indexRateGroupId": { + "type": "integer", + "description": "__Primary key__ \r\n__When creating records:__ ___Mandatory___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "indexRate": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "number": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "IndexRateGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "indexRateGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "IndustryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "industryTypeNumber": { + "type": "integer", + "description": "Type: byte? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_BoligmappaIndustryTypeId": { + "$ref": "#/components/schemas/BoligmappaIndustryTypeEnum" + }, + "enum_IndustryTypeId": { + "$ref": "#/components/schemas/IndustryTypeEnum" + }, + "externalSystemIndustryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemIndustryTypeDto" + } + } + } + }, + "IndustryTypeEnum": { + "type": "string", + "enum": [ + "Undefined", + "Electrician", + "Plumber", + "AdvisingEngineer", + "Carpenter", + "Painter", + "Mason", + "Tinsmith", + "Contractor", + "Appraisal", + "RealEstateAgent", + "Insurance", + "Architect", + "HousingProducer", + "Builder", + "LandscapingGardener", + "Ventilation", + "Government", + "LocalElectricityAuthority", + "MachineContractor", + "FireAndChimneysweep", + "RoofContractor", + "HeatPump", + "Glazier", + "FireSecurity", + "Furnishings", + "Fencing", + "SeaContracting" + ] + }, + "IndustryTypeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "IndustryTypeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "industryTypeId": { + "type": "integer", + "format": "int32" + } + } + }, + "IndustryTypePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "industryTypeNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "IndustryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemIndustryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemIndustryTypeUpsertResultDto" + } + } + } + }, + "InsertInvoiceLines_SessionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal" + }, + "invoiceLineCode": { + "type": "string", + "nullable": true + }, + "invoiceLineText": { + "type": "string", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32" + }, + "quantityInvoice": { + "type": "number", + "format": "decimal" + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal" + }, + "storageId": { + "type": "integer", + "format": "int32" + }, + "surchargePercentInvoice": { + "type": "number", + "format": "decimal" + }, + "updateAssignmentCost": { + "type": "boolean" + }, + "updateStock": { + "type": "boolean" + } + } + }, + "IntegratedSystemConfigDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "integratedSystemConfigId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "key": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "value": { + "type": "string", + "description": "Type: string?", + "nullable": true + }, + "enum_IntegratedSystemTypeId": { + "$ref": "#/components/schemas/IntegratedSystemTypeEnum" + } + } + }, + "IntegratedSystemConfigUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "integratedSystemConfigId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "IntegratedSystemTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "VismaNetErp", + "VismaPayroll", + "Tripletex", + "UniEconomy", + "SpeedyCraft" + ] + }, + "IntegrationGetSyncEventsParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "top": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "IntegrationGetSyncEventsResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncEventId": { + "type": "integer", + "format": "int32" + }, + "tableName": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rowId": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "createOperation": { + "type": "boolean" + } + } + }, + "IntegrationRemoveSyncEventsParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncEventId": { + "type": "integer", + "format": "int32" + } + } + }, + "IntegrationSpeedycraftGetSkeletonIdsToSyncParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "tableName": { + "type": "string", + "nullable": true + }, + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "IntegrationStatusDto": { + "type": "object", + "description": "Contains integration issues for all integrations. \r\n \r\nRows inserted into this table will auto-generate corresponding rows in SystemMessage and set Sys_RowStatus on corresponding rows.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "integrationStatusId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nAssignment ID to associate the message with if no more detailed row is available. \r\nExample: Unable to create product note. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "attemptCount": { + "type": "integer", + "description": "Automatically counted times the issue has been registered. \r\n__When creating records:__ ___Default value = 1___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attemptsLeft": { + "type": "integer", + "description": "Automatically counted down to 0 if the issue is re-registered. \r\n__When creating records:__ ___Default value = 5___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalEditURL": { + "type": "string", + "description": "Set by the integration if known when setting the IntegrationStatus. \r\nType: string? (Max: 200)", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "(Technical) ID from the integrated system. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalIdText": { + "type": "string", + "description": "Human-readable ID from the external system. Example: SupplierInvoice number. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalTraceId": { + "type": "string", + "description": "Same as TraceID, but for looking up logs in external systems where available. \r\nType: string? (Max: 100)", + "nullable": true + }, + "fieldName": { + "type": "string", + "description": "The referenced field, if known. Example: Email. \r\nType: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "groupId": { + "type": "string", + "description": "Represents a group of IntegrationStatus lines. \r\n \r\nWhen auto-deleting IntegrationStatus lines, RowID / RowID2 can be excluded, and GroupID provided instead. All rows matching the GroupID within the given ExternalSystemID, Operation and TableName will be removed. \r\nType: string? (Max: 50)", + "nullable": true + }, + "internalEditURL": { + "type": "string", + "description": "Set by the integration if known when setting the IntegrationStatus. If not provided, the API will calculate a relative URL for this where possible during postprocessing. \r\n \r\nExample: client/a-anonymisert/pages/assignment/17863/information \r\nType: string? (Max: 200)", + "nullable": true + }, + "internalIdText": { + "type": "string", + "description": "Human-readable ID from Contracting. Example: Assignment number. \r\nType: string? (Max: 50)", + "nullable": true + }, + "operation": { + "type": "string", + "description": "The operation performed when the issue was found, for example InvoiceSync. \r\n__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "rawMessage": { + "type": "string", + "description": "Raw error message, untranslated. Still safe for users, so does not contain any secrets. \r\nIntended for end-user consumption, so should not contain exception messages etc. \r\nType: string?", + "nullable": true + }, + "retryRequested": { + "type": "boolean", + "description": "When set to 1, indicates that a user explicitly wishes to retry the operation. \r\n \r\nUseful in cases where an automatic retry is not triggered, for example if an error was caused by related data not part of the root aggregate. \r\n \r\nExample: Assignment sync failing due to something being wrong with a department. Fixing the issue on the department will not necessarily trigger a change on assignments. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "rowId": { + "type": "integer", + "description": "Identifies the entity row. For composite keys, identifies the row together with RowID2. \r\nType: long?", + "format": "int64", + "nullable": true + }, + "rowId2": { + "type": "integer", + "description": "Represents the second part of a composite key identifying a row. For tables like AssignmentParticipant, the AssignmentID will be represented by RowID, while RowID2 will represent the EmployeeID. This is implicitly defined by TableName. \r\nType: long?", + "format": "int64", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "tableName": { + "type": "string", + "description": "The name of the table representing the synced entity. Examples: Customer, Invoice. \r\nType: string? (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "technicalMessage": { + "type": "string", + "description": "Technical error description, intended to help developers, support and similar to identify the ongoing issue. \r\n \r\nMay contain exception messages or similar texts. \r\nType: string?", + "nullable": true + }, + "textId": { + "type": "string", + "description": "Translatable text, corresponding to TextIDs in the Texts database. \r\nType: string? (Max: 200)", + "nullable": true + }, + "traceId": { + "type": "string", + "description": "The TraceID is also used in the logs, and can be used by support to find more details on the given issue. \r\nType: string? (Max: 100)", + "nullable": true + }, + "userComment": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "userOk": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "IntegrationStatusIncomingMoveAndProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "IntegrationStatusIncomingMoveAndProcessResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "totalProcessed": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "IntegrationStatusUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "integrationStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "IntegrationStatus_IncomingDto": { + "type": "object", + "description": "Contains integration issues for all integrations. \r\n \r\nRows inserted into this table will auto-generate corresponding rows in SystemMessage and set Sys_RowStatus on corresponding rows.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "integrationStatus_IncomingId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "externalEditURL": { + "type": "string", + "description": "Set by the integration if known when setting the IntegrationStatus. \r\nType: string? (Max: 200)", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "(Technical) ID from the integrated system. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalIdText": { + "type": "string", + "description": "Human-readable ID from the external system. Example: SupplierInvoice number. \r\nType: string? (Max: 50)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\nType: short?", + "format": "int32", + "nullable": true + }, + "externalTraceId": { + "type": "string", + "description": "Same as TraceID, but for looking up logs in external systems where available. \r\nType: string? (Max: 100)", + "nullable": true + }, + "fieldName": { + "type": "string", + "description": "The referenced field, if known. Example: Email. \r\nType: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "groupId": { + "type": "string", + "description": "Represents a group of IntegrationStatus lines. \r\n \r\nWhen auto-deleting IntegrationStatus lines, RowID / RowID2 can be excluded, and GroupID provided instead. All rows matching the GroupID within the given ExternalSystemID, Operation and TableName will be removed. \r\nType: string? (Max: 50)", + "nullable": true + }, + "integratorId": { + "type": "integer", + "description": "Reference to Integrator \r\nType: short?", + "format": "int32", + "nullable": true + }, + "internalEditURL": { + "type": "string", + "description": "Set by the integration if known when setting the IntegrationStatus. If not provided, the API will calculate a relative URL for this where possible during postprocessing. \r\n \r\nExample: client/a-anonymisert/pages/assignment/17863/information \r\nType: string? (Max: 200)", + "nullable": true + }, + "internalIdText": { + "type": "string", + "description": "Human-readable ID from Contracting. Example: Assignment number. \r\nType: string? (Max: 50)", + "nullable": true + }, + "operation": { + "type": "string", + "description": "The operation performed when the issue was found, for example InvoiceSync. \r\n__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "rawMessage": { + "type": "string", + "description": "Raw error message, untranslated. Still safe for users, so does not contain any secrets. \r\nIntended for end-user consumption, so should not contain exception messages etc. \r\nType: string?", + "nullable": true + }, + "rowId": { + "type": "integer", + "description": "Identifies the entity row. For composite keys, identifies the row together with RowID2. \r\nType: long?", + "format": "int64", + "nullable": true + }, + "rowId2": { + "type": "integer", + "description": "Represents the second part of a composite key identifying a row. For tables like AssignmentParticipant, the AssignmentID will be represented by RowID, while RowID2 will represent the EmployeeID. This is implicitly defined by TableName. \r\nType: long?", + "format": "int64", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "tableName": { + "type": "string", + "description": "The name of the table representing the synced entity. Examples: Customer, Invoice. \r\nType: string? (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "technicalMessage": { + "type": "string", + "description": "Technical error description, intended to help developers, support and similar to identify the ongoing issue. \r\n \r\nMay contain exception messages or similar texts. \r\nType: string?", + "nullable": true + }, + "textId": { + "type": "string", + "description": "Translatable text, corresponding to TextIDs in the Texts database. \r\nType: string? (Max: 200)", + "nullable": true + }, + "traceId": { + "type": "string", + "description": "The TraceID is also used in the logs, and can be used by support to find more details on the given issue. \r\nType: string? (Max: 100)", + "nullable": true + }, + "next_Enum_RowStateId": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "IntegrationStatus_IncomingUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "integrationStatus_IncomingId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "InvoiceAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "invoiceAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceId for the current ExternalSystem", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "description": "Reference to Invoice \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "InvoiceCalculateTotalsParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sessionId": { + "type": "string", + "format": "uuid", + "nullable": true + } + } + }, + "InvoiceCalculateTotalsResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceTotal": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "totalCost": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "coverage": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "InvoiceCancelParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "traceId": { + "type": "string", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceCancelResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "InvoiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "debtorCustomerIdExternal": { + "type": "string", + "description": "External ID corresponding to DebtorCustomerId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "parentInvoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to ParentInvoiceId for the current ExternalSystem", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "description": "External ID corresponding to PaymentTermId for the current ExternalSystem", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "attachServiceListAsPDF": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "debtorCustomerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "dueDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "grossAmount": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "invoiceDate": { + "type": "string", + "description": "Obsolete: Currently contains registered date, replaced by RegisteredUTC. \r\nType: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "invoicedUTC": { + "type": "string", + "description": "Formal invoice date. The invoice number gets set at this time. This is the basis for project period. \r\nType: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "invoiceNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "isCreditNote": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isFinalInvoice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "netAmount": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "parentInvoiceId": { + "type": "integer", + "description": "Reference to Invoice \r\nType: int?", + "format": "int32", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "description": "Reference to PaymentTerm \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "registeredUTC": { + "type": "string", + "description": "The invoice was registered in Contracting.Works. Usually identical to Sys_CreatedDateUTC. \r\nType: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "remainingAmount": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sentUTC": { + "type": "string", + "description": "When the invoice is actually sent to the customer. \r\nType: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "transferredUTC": { + "type": "string", + "description": "The invoice was transferred successfully to the economy system. \r\nType: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "vATFree": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_InvoiceStatusId": { + "$ref": "#/components/schemas/InvoiceStatusEnum" + }, + "externalSystemInvoices": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceDto" + } + }, + "invoiceAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/InvoiceAttachmentDto" + } + }, + "invoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/InvoiceLineDto" + } + } + } + }, + "InvoiceExecuteDimensionInvoiceTemplateParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "nullable": true + }, + "traceId": { + "type": "string", + "nullable": true + }, + "dimensionValues": { + "type": "string", + "nullable": true + } + } + }, + "InvoiceExecuteDimensionInvoiceTemplateResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32" + }, + "wasCreated": { + "type": "boolean" + } + } + }, + "InvoiceExecuteInvoiceRuleParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "insertAtRowIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "returnResult": { + "type": "boolean", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "nullable": true + }, + "reapplyRule": { + "type": "boolean", + "nullable": true + }, + "traceId": { + "type": "string", + "nullable": true + }, + "invoicingDimensionValueId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceExecuteInvoiceRuleResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32" + }, + "wasCreated": { + "type": "boolean" + } + } + }, + "InvoiceExecuteInvoiceTemplateParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "nullable": true + }, + "traceId": { + "type": "string", + "nullable": true + } + } + }, + "InvoiceExecuteInvoiceTemplateResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32" + }, + "wasCreated": { + "type": "boolean" + } + } + }, + "InvoiceGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "InvoiceGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "InvoiceLine": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32" + }, + "invoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineCode": { + "type": "string", + "nullable": true + }, + "invoiceLineText": { + "type": "string", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "surchargePercentInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "enum_InvoiceLineRuleTypeDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "combined_InvoiceLineRuleCode_Description": { + "type": "string", + "nullable": true + }, + "supplierIndustryTypeName": { + "type": "string", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fieldAttributesByJson": { + "type": "string", + "nullable": true + }, + "sourceServiceIds": { + "type": "string", + "nullable": true + }, + "sourceProductNoteLineIds": { + "type": "string", + "nullable": true + } + } + }, + "InvoiceLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "invoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "cost_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_1External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_1 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_2External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_2 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_3External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_3 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_4External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_4 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_5External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_5 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_6External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_6 for the current ExternalSystem", + "nullable": true + }, + "income_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "income_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceId for the current ExternalSystem", + "nullable": true + }, + "invoiceLineRuleIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineRuleId for the current ExternalSystem", + "nullable": true + }, + "invoicingDimensionValueIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoicingDimensionValueId for the current ExternalSystem", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "serviceAgreementDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementDetailId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "basisSumPercentInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "cost_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_1": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_2": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_3": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_4": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_5": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_6": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "income_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "invoiceLineCode": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "description": "Reference to InvoiceLineRule \r\nType: short?", + "format": "int32", + "nullable": true + }, + "invoiceLineText": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string", + "nullable": true + }, + "invoicingDimensionValueId": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "isFixedPrice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isVarious": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "listPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "priceOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\nType: int?", + "format": "int32", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nThe project period will be auto-filled in based on the parent invoices InvoicedUTC field if it is missing. Special permissions are needed to alter the project period on an existing record. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "registeredDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "salesPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "serviceAgreementDetailId": { + "type": "integer", + "description": "Reference to ServiceAgreementDetail \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sourceProductNoteLineIds": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "sourceServiceIds": { + "type": "string", + "description": "Type: string?", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "surchargePercentInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_AssignmentId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_InvoiceNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_ProjectAccountCategoryId": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "sys_ProjectPeriod": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "updateAssignmentCost": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "updateStock": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "vATFree": { + "type": "boolean", + "description": "This field, together with account information, is caculated when the invoice is sent (sendInvoice is called) \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "Reference to WageCodeReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "enum_InvoiceLineTypeId": { + "$ref": "#/components/schemas/InvoiceLineTypeEnum" + }, + "sys_Enum_InvoiceLineRuleTypeDetailId": { + "$ref": "#/components/schemas/InvoiceLineRuleTypeDetailEnum" + }, + "invoiceId": { + "type": "integer", + "description": "Reference to Invoice \r\nType: int?", + "format": "int32", + "nullable": true + }, + "externalSystemInvoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceLineDto" + } + } + } + }, + "InvoiceLineGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "InvoiceLineGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineId": { + "type": "integer", + "format": "int32" + } + } + }, + "InvoiceLinePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNumber": { + "type": "string", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "InvoiceLineRuleDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineRuleId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "income_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "sale_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Sale_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "sale_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Sale_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "externalInvoiceLineCode": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleCode": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "invoiceLineTextEditable": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "notUseOnFixedPrice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "override_InvoiceLineCode": { + "type": "string", + "description": "When set, the create invoice lines will get this code instead of ILR_ + InvoiceLineRuleCode. This allows for example setting hour lines to a specific product, thus emulating the old behaviour where hours were invoiced on product -1000. \r\nType: string? (Max: 100)", + "nullable": true + }, + "override_InvoiceLineText": { + "type": "string", + "description": "Type: string? (Max: 200)", + "nullable": true + }, + "priceOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sale_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sale_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "salesPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "Reference to WageCodeReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "wageType_CarExpenses": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageType_Diet": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageType_OrdinaryWage": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageType_Overtime": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageType_TravelExpenses": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageType_VariousExtra": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_InvoiceLineRuleTypeDetailId": { + "$ref": "#/components/schemas/InvoiceLineRuleTypeDetailEnum" + }, + "enum_InvoiceLineRuleTypeId": { + "$ref": "#/components/schemas/InvoiceLineRuleTypeEnum" + }, + "externalSystemInvoiceLineRules": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceLineRuleDto" + } + } + } + }, + "InvoiceLineRuleGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "InvoiceLineRuleGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineRuleId": { + "type": "integer", + "format": "int32" + } + } + }, + "InvoiceLineRulePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleCode": { + "type": "string", + "nullable": true + }, + "enum_InvoiceLineRuleTypeDetailId": { + "$ref": "#/components/schemas/InvoiceLineRuleTypeDetailEnum" + }, + "enum_InvoiceLineRuleTypeId": { + "$ref": "#/components/schemas/InvoiceLineRuleTypeEnum" + } + } + }, + "InvoiceLineRuleTypeDetailEnum": { + "type": "string", + "enum": [ + "NotSet", + "ServicePerWageCode", + "ServicePerInvoiceCategory", + "ServicePerInvoiceCategoryAndWageCode", + "ServicePerRate", + "ServiceTotal", + "ServicePerEmployee", + "MaterialProductNoteDetail", + "MaterialProductNote", + "MaterialFromInvoiceAppendix", + "MaterialProductNoteWithDetails", + "MaterialProductNoteDetailLastPriceOnProduct", + "MaterialProductNoteLastPriceOnProduct", + "MaterialFromInvoiceAppendixLastPriceOnProduct", + "MaterialProductNoteWithDetailsLastPriceOnProduct", + "BasisSum", + "BasisSumWithReset", + "BasisManualEntry", + "BasisNotInvoicedWork", + "BasisReset", + "SumOne", + "SumOneWithReset", + "SumTwo", + "SumTwoWithReset", + "SumOneReset", + "SumTwoReset", + "TextFromAssignmentByInvoiceType", + "TextManualInput", + "TextFromProcessingCode", + "TextFromAssignmentInvoiceText", + "TextFromAssignmentLocation", + "TextFromAssignmentReference", + "TextFromAssignmentDescription", + "TextFromProjectName", + "VariousPayroll", + "AmountManualEntry", + "AmountFromAgreement", + "AmountFromInvoiced", + "AmountFromInvoicedPerInvoice", + "AmountFromAgreementAsText", + "AmountFromInvoicedAsText", + "AmountFromInvoicedPerInvoiceAsText", + "AmountFromToBeInvoiced", + "AmountFromToBeInvoicedAsText" + ] + }, + "InvoiceLineRuleTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "Service", + "Material", + "Basis", + "Sum", + "Text", + "VariousPayroll", + "Amount" + ] + }, + "InvoiceLineRuleUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemInvoiceLineRules": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceLineRuleUpsertResultDto" + } + } + } + }, + "InvoiceLineTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "Normal", + "Text", + "Sum", + "Func", + "Hidden" + ] + }, + "InvoiceLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemInvoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceLineUpsertResultDto" + } + } + } + }, + "InvoiceReserveBilledPriceCalculationEnum": { + "type": "string", + "enum": [ + "NotSet", + "TimeMatAgreement", + "FixedCoverage", + "CoveragePerHour", + "MarkupOnCost" + ] + }, + "InvoiceReserveFixedPriceCalculationEnum": { + "type": "string", + "enum": [ + "NotSet", + "EnteredCompletion", + "FixedCoverage", + "CoveragePerHour", + "MarkupOnCost" + ] + }, + "InvoiceStatusEnum": { + "type": "string", + "enum": [ + "NotSet", + "Ready", + "Invoiced", + "Processing", + "Error", + "MovedToStorage" + ] + }, + "InvoiceTemplateDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "invoiceTemplateDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceTemplateDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceTemplateDetailId for the current ExternalSystem", + "nullable": true + }, + "invoiceLineRuleIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineRuleId for the current ExternalSystem", + "nullable": true + }, + "invoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "description": "Reference to InvoiceLineRule \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemInvoiceTemplateDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceTemplateDetailDto" + } + } + } + }, + "InvoiceTemplateDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "invoiceTemplateDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateDetailIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemInvoiceTemplateDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceTemplateDetailUpsertResultDto" + } + } + } + }, + "InvoiceTemplateDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "invoiceTemplateNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemInvoiceTemplates": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceTemplateDto" + } + }, + "invoiceTemplateDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/InvoiceTemplateDetailDto" + } + } + } + }, + "InvoiceTemplatePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceTemplateNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceTemplateUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceTemplateIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemInvoiceTemplates": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceTemplateUpsertResultDto" + } + }, + "invoiceTemplateDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/InvoiceTemplateDetailUpsertResultDto" + } + } + } + }, + "InvoiceUpdateProductNoteLineParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceUpdateProductNoteLineResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "sys_RowState": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "InvoiceUpsertInvoiceLineSessionParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineRuleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineCode": { + "type": "string", + "nullable": true + }, + "invoiceLineText": { + "type": "string", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "surchargePercentInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "registeredDateTimeUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "updateAssignmentCost": { + "type": "boolean", + "nullable": true + }, + "updateStock": { + "type": "boolean", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "nullable": true + }, + "traceId": { + "type": "string", + "nullable": true + }, + "returnResult": { + "type": "boolean", + "nullable": true + } + } + }, + "InvoiceUpsertInvoiceLineSessionResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineSessionId": { + "type": "integer", + "format": "int32" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + } + } + }, + "InvoiceUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemInvoices": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemInvoiceUpsertResultDto" + } + }, + "invoiceAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/InvoiceAttachmentUpsertResultDto" + } + }, + "invoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/InvoiceLineUpsertResultDto" + } + } + } + }, + "InvoicingLineStatusEnum": { + "type": "string", + "enum": [ + "ToBeInvoiced", + "OnInvoice", + "Invoiced", + "DoNotInvoiceConvertedToFixedPrice", + "DoNotInvoiceFixedPrice", + "BilledButNotInvoiced", + "DoNotForwardInvoice", + "NotForInvoicing", + "NotForInvoicingMoved" + ] + }, + "JobCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to JobCategoryId for the current ExternalSystem", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: Name", + "nullable": true + }, + "number": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemJobCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemJobCategoryDto" + } + } + } + }, + "JobCategoryGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "JobCategoryGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "jobCategoryId": { + "type": "integer", + "format": "int32" + } + } + }, + "JobCategoryPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "number": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "JobCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemJobCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemJobCategoryUpsertResultDto" + } + } + } + }, + "LastRowVersionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "tableName": { + "type": "string", + "nullable": true + }, + "lastRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "maxId": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "LastRowVersionsRequestDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "tableNames": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + } + }, + "LastRowVersionsResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "lastRowVersions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/LastRowVersionDto" + } + } + } + }, + "LedgerAccountDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "ledgerAccountId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "ledgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "parentLedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to ParentLedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "projectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "ledgerAccountNumber": { + "type": "integer", + "description": "Type: int? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "parentLedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemLedgerAccounts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemLedgerAccountDto" + } + } + } + }, + "LedgerAccountGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "LedgerAccountGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "ledgerAccountId": { + "type": "integer", + "format": "int32" + } + } + }, + "LedgerAccountUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "ledgerAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ledgerAccountIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemLedgerAccounts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemLedgerAccountUpsertResultDto" + } + } + } + }, + "MOM_TypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "MOM", + "UserManual" + ] + }, + "MapDataDto": { + "type": "object", + "description": "Mapping of external values (through MapDataValue) with Contracting values. \r\nAllows for mapping e.g. mapping general ledger accounts between systems.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "mapDataId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "applyDoneUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "applyStartedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: MultilineText", + "nullable": true + }, + "entityId": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: long", + "format": "int64", + "nullable": true + }, + "entityType": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "isInUse": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mapDataValueId": { + "type": "integer", + "description": "Reference to MapDataValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "number": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "suggested_MapDataValueId": { + "type": "integer", + "description": "Reference to MapDataValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "MapDataPrepareParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "clearExistingData": { + "type": "boolean", + "nullable": true + } + } + }, + "MapDataUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "mapDataId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "MapDataValueDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "mapDataValueId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: MultilineText", + "nullable": true + }, + "descriptionPart1": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: MultilineText", + "nullable": true + }, + "descriptionPart2": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: MultilineText", + "nullable": true + }, + "entityType": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "externalId": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\nType: short?", + "format": "int32", + "nullable": true + }, + "number": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + } + } + }, + "MapDataValueUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "mapDataValueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "MaxRowVersionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "maxRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "MessageChannelEnum": { + "type": "string", + "enum": [ + "NotDefined", + "SMS" + ] + }, + "MessageDeliveryStatusEnum": { + "type": "string", + "enum": [ + "OutboundDraft", + "OutboundReadyForSend", + "OutboundSendStarted", + "OutboundSendFailed", + "OutboundSent", + "OutboundReceived", + "OutboundRead", + "InboundReceived", + "InboundReadByUser" + ] + }, + "MessageDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "textId": { + "type": "string", + "nullable": true + }, + "columnState": { + "type": "integer", + "format": "int32" + } + } + }, + "NotificationTypeEnum": { + "type": "string", + "enum": [ + "General", + "System", + "Support", + "ContactMessage" + ] + }, + "OriginTypeEnum": { + "type": "string", + "enum": [ + "Manual", + "HandTerminal", + "Hpc", + "AutoFakt", + "Purchase", + "IncomingInvoice", + "PurchaseThroghHpc", + "InvoiceManager", + "VismaDocCenter", + "DigiPenn", + "NelfoR", + "Pos", + "ToStorage", + "ToAssignment", + "FromAssignment", + "FromInvoice", + "OldRecords" + ] + }, + "ParticipantStatusEnum": { + "type": "string", + "enum": [ + "Assigned", + "Synced", + "Viewed", + "Working", + "ActiveViewed", + "ActiveWorking", + "Removed", + "Finished" + ] + }, + "PaymentTermDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "description": "External ID corresponding to PaymentTermId for the current ExternalSystem", + "nullable": true + }, + "days": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "daysStartNextMonth": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemPaymentTerms": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemPaymentTermDto" + } + } + } + }, + "PaymentTermGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "PaymentTermGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "paymentTermId": { + "type": "integer", + "format": "int32" + } + } + }, + "PaymentTermUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemPaymentTerms": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemPaymentTermUpsertResultDto" + } + } + } + }, + "PayrollFormatEnum": { + "type": "string", + "enum": [ + "NotSet", + "VismaSalary", + "HuldtLillevikV5", + "UniMicro", + "PowerOfficeGO", + "VismaSalaryWithoutWageRate", + "VismaSalaryWithoutDateAndPeriod", + "VismaSalaryWithoutWageRateDateAndPeriod" + ] + }, + "PerformedAction": { + "type": "string", + "enum": [ + "Unknown", + "Insert", + "Update", + "Delete", + "NoAction" + ] + }, + "PermissionDto": { + "type": "object", + "description": "Permissions in use on the client. Note that API permissions with name on the format AccessType.TableName.ColumnName are automatically supported for regular read and write operations. AccessType is either Read, Write or ReadWrite. The ColumnName may be exluded, in which case the permission applies to all columns in the table. TableName may also refer to a View. The ReportIfMissing flag is expected to be set on automatically supported permissions.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "permissionId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "permissionIdExternal": { + "type": "string", + "description": "External ID corresponding to PermissionId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "isForFrontend": { + "type": "boolean", + "description": "This permission is frontend-specific, and will be provided to the FE on request. If false, it is considered API-internal. To control both FE and the API, create two permissions and add them both to the same role. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "reportIfMissing": { + "type": "boolean", + "description": "When checking permissions, this permission will be reported if it is missing rather than if it is present on a user. This is to reduce the amount of permission info returned to the API / frontend for a given user. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemPermissions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemPermissionDto" + } + } + } + }, + "PermissionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "permissionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "permissionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemPermissions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemPermissionUpsertResultDto" + } + } + } + }, + "PieceworkTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "HourlyWage", + "PieceworkBaseWage", + "PieceworkDaytime", + "PieceworkRegisteredHours", + "PieceworkHoursFixedSalary", + "PieceworkAdvance", + "PieceworkSettlement", + "VariousSpecial" + ] + }, + "PreProcessDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "column": { + "type": "string", + "nullable": true + }, + "textID": { + "type": "string", + "nullable": true + }, + "suggestedValue": { + "type": "string", + "nullable": true + }, + "columnState": { + "type": "integer", + "format": "int32" + }, + "enabled": { + "type": "boolean", + "nullable": true + }, + "validations": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + } + }, + "PreProcessInvoiceLineCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNumber": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductAgreementDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productAgreementDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productAgreementDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementDetailId for the current ExternalSystem", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "extraSurchargePercent": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "from": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "fromNumeric": { + "type": "integer", + "description": "Type: long?", + "format": "int64", + "nullable": true + }, + "fullFrom": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "fullTo": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "price": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "priority": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "surchargePercentIsVisible": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "to": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "toNumeric": { + "type": "integer", + "description": "Type: long?", + "format": "int64", + "nullable": true + }, + "enum_ProductAgreementDetail_PriceTypeId": { + "$ref": "#/components/schemas/ProductAgreementDetail_PriceTypeEnum" + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemProductAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductAgreementDetailDto" + } + } + } + }, + "ProductAgreementDetailGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProductAgreementDetailGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productAgreementDetailId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductAgreementDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productAgreementDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productAgreementDetailIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProductAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductAgreementDetailUpsertResultDto" + } + } + } + }, + "ProductAgreementDetail_PriceTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "SalesPrice", + "SupplierPrice", + "CostPrice", + "CostPriceFromPurchaseAgreement", + "CostPriceFromStock" + ] + }, + "ProductAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "usePriceFrom_SupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to UsePriceFrom_SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "calculateFromInvoice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "number": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "usePriceFrom_SupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "externalSystemProductAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductAgreementDto" + } + }, + "productAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductAgreementDetailDto" + } + } + } + }, + "ProductAgreementGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProductAgreementGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productAgreementId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductAgreementPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "number": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProductAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductAgreementUpsertResultDto" + } + }, + "productAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductAgreementDetailUpsertResultDto" + } + } + } + }, + "ProductDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "income_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "pOSPurchase_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSPurchase_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSPurchase_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSPurchase_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSSale_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSSale_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSSale_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSSale_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "purchase_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Purchase_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "purchase_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Purchase_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "sale_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Sale_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "sale_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Sale_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "countryId": { + "type": "string", + "description": "Reference to Country \r\nType: string? (Max: 2)", + "nullable": true + }, + "gTIN": { + "type": "integer", + "description": "Type: long?", + "format": "int64", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "invoiceMergeProduct": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceShowProductNumber": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isVarious": { + "type": "boolean", + "description": "No: \"Diversevare\", will not be merged on invoices \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "pOSPurchase_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "pOSPurchase_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "pOSSale_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "pOSSale_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "priceOnly": { + "type": "boolean", + "description": "This always has quantity 1, which should be auto-set to 1 on product note details. This 1 must be disabled on product note details. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productName": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "productNumber": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "purchase_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "purchase_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sale_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sale_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "salesPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "statisticsInclude": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "unit": { + "type": "string", + "description": "Type: string? (Max: 3)", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "externalSystemProducts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductDto" + } + }, + "productExtendedInfos": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductExtendedInfoDto" + } + } + } + }, + "ProductExtendedInfoDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productExtendedInfoId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "type": { + "type": "string", + "description": "0: Picture \r\n1: FDV \r\n2: HMS \r\n.... \r\n__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "value": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "ProductExtendedInfoUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productExtendedInfoId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProductGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProductGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductImportDto": { + "type": "object", + "description": "Represents a file which is part of a file set. \r\n \r\nWhen an import succeeds, the LastSuccess fields are filled in.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productImportId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "fileName": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "ftpDir": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "ftpFileName": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "ftpHash": { + "type": "string", + "description": "Hash value from the FTP server, if supported. \r\nType: string? (Max: 50)", + "nullable": true + }, + "ftpLastChangedDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "ftpPwd": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "ftpSize": { + "type": "integer", + "description": "Type: long?", + "format": "int64", + "nullable": true + }, + "ftpSupportsHash": { + "type": "boolean", + "description": "Type: bool?", + "nullable": true + }, + "ftpSvr": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "ftpUsr": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "imported_UTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "isProductAgreement": { + "type": "boolean", + "description": "The imported file represents either a product agreement or a product catalog. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "lastSuccess_FileName": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "lastSuccess_Imported_UTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "lastSuccess_Staged_LineCount": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastSuccess_Staged_UTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "lastSuccess_StagingInMs": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastSuccess_StatusMessage": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "manuallyUpladed": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "size": { + "type": "integer", + "description": "Type: long?", + "format": "int64", + "nullable": true + }, + "staged_LineCount": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "staged_UTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "stagingInMs": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "statusMessage": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_FileDownloadModeId": { + "$ref": "#/components/schemas/FileDownloadModeEnum" + }, + "productImportFileSetId": { + "type": "integer", + "description": "Reference to ProductImportFileSet \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "ProductImportFileSetDto": { + "type": "object", + "description": "Represents a set of product catalog files imported together, usually a product list and a product agreement. \r\n \r\nWhen an import succeeds, the LastSuccess fields are filled in.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productImportFileSetId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "importingInMs": { + "type": "integer", + "description": "Performance statistic: How long it took to import the file set with the given job number from the staging tables. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "jobNumber": { + "type": "integer", + "description": "When importing a set of files, the job number is increased. The job number is used in the client database to ensure corresponding files are handled together. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "jobStartedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "lastSuccess_ImportingInMs": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastSuccess_JobNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastSuccess_JobStartedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "lastSuccess_ProductCount": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastSuccess_StagingInMs": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastSuccess_StatusMessage": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "manuallyRequested": { + "type": "boolean", + "description": "Set to 1 when a user manually requested importing the file set. Will be reset to 0 once the import job starts. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "manuallyUploaded": { + "type": "boolean", + "description": "This represents a manually uploaded file set, usually through the CW UI. Only one manually uploaded file set exists at one time, and the file set will be reused on the next manual upload. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productCount": { + "type": "integer", + "description": "The number of imported products \r\nType: int?", + "format": "int32", + "nullable": true + }, + "stagingInMs": { + "type": "integer", + "description": "Performance statistic: How long it took from the job started to all files were inserted into the staging tables with the corresponding job number. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "statusMessage": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "succeeded": { + "type": "boolean", + "description": "Type: bool?", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_ImportFrequencyId": { + "$ref": "#/components/schemas/ImportFrequencyEnum" + }, + "productImports": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductImportDto" + } + } + } + }, + "ProductImportFileSetUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productImportFileSetId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "productImports": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductImportUpsertResultDto" + } + } + } + }, + "ProductImportUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productImportId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProductNoteAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productNoteAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductNoteId for the current ExternalSystem", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productNoteId": { + "type": "integer", + "description": "Reference to ProductNote \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "ProductNoteAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductNoteAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProductNoteDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productNoteId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductNoteId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "noteMovedFromAssignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to NoteMovedFromAssignmentId for the current ExternalSystem", + "nullable": true + }, + "noteMovedToAssignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to NoteMovedToAssignmentId for the current ExternalSystem", + "nullable": true + }, + "noteMovedToStorageIdExternal": { + "type": "string", + "description": "External ID corresponding to NoteMovedToStorageId for the current ExternalSystem", + "nullable": true + }, + "regBy_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to RegBy_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "documentIdExt": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "documentOrigin": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "noteDescription": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "noteMovedFromAssignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "noteMovedToAssignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "noteMovedToStorageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "productNoteNumber": { + "type": "integer", + "description": "Type: int? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "regBy_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "registeredTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "returnNote": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "skipOnNextInvoice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "voucherNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "enum_OriginTypeId": { + "$ref": "#/components/schemas/OriginTypeEnum" + }, + "supplierInvoiceId": { + "type": "integer", + "description": "Reference to SupplierInvoice \r\nType: int?", + "format": "int32", + "nullable": true + }, + "externalSystemProductNotes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductNoteDto" + } + }, + "productNoteAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteAttachmentDto" + } + }, + "productNoteLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteLineDto" + } + } + } + }, + "ProductNoteGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProductNoteGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductNoteLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productNoteLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productNoteLineIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductNoteLineId for the current ExternalSystem", + "nullable": true + }, + "cost_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_1External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_1 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_2External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_2 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_3External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_3 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_4External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_4 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_5External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_5 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_6External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_6 for the current ExternalSystem", + "nullable": true + }, + "income_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "income_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceId for the current ExternalSystem", + "nullable": true + }, + "invoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "parent_ProductNoteLineIdExternal": { + "type": "string", + "description": "External ID corresponding to Parent_ProductNoteLineId for the current ExternalSystem", + "nullable": true + }, + "productAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductNoteId for the current ExternalSystem", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "supplierInvoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "cost_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "customerPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_1": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_2": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_3": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_4": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_5": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_6": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "income_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "description": "Reference to Invoice \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "description": "Reference to InvoiceLine \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceSpecificationNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "isVarious": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "listPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "override_QuantityInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "parent_ProductNoteLineId": { + "type": "integer", + "description": "Reference to ProductNoteLine \r\nType: int?", + "format": "int32", + "nullable": true + }, + "priceOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "productName": { + "type": "string", + "description": "Type: string? \r\nValidation: Name", + "nullable": true + }, + "productNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\nType: int?", + "format": "int32", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nThe project period will be auto-filled in based on RegisteredDateTimeUTC if it is missing. Special permissions are needed to alter the project period on an existing record. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "registeredDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "salesPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "salesPriceModified": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "supplierInvoiceLineId": { + "type": "integer", + "description": "Reference to SupplierInvoiceLine \r\nType: int?", + "format": "int32", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "surchargePercentInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "description": "Set to 0 to prevent syncing the specific line to mobile devices. Used on soft-deleted rows (Sys_Deactivated = 1) which have been hard-deleted in SpeedyCraft to prevent integration issues. \r\n__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_AssignmentId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_CostPriceAvgFIFO": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_CostPriceAvgUpdOnAdd": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_CostPriceDefault": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_CostPriceLocked": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_InvoicedProjectPeriod": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_InvoicedProjectPeriodId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_LastChangeOrigin": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "sys_PostProcessNeeded": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_ProjectAccountCategoryId": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "sys_ProjectPeriod": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_PurchaseAgreementId": { + "type": "integer", + "description": "Reference to PurchaseAgreement \r\nPurchase agreement used at the time of resolving cost price and customer price. The primary purpose of this field is to be able to detect errors in agreements and subsequently fix those errors cleanly. \r\nType: short?", + "format": "int32", + "nullable": true + }, + "updateAssignmentCost": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "updateStock": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_CostPriceSourceId": { + "$ref": "#/components/schemas/CostPriceSourceEnum" + }, + "enum_InvoicingLineStatusId": { + "$ref": "#/components/schemas/InvoicingLineStatusEnum" + }, + "sys_Enum_OriginTypeId": { + "$ref": "#/components/schemas/OriginTypeEnum" + }, + "productNoteId": { + "type": "integer", + "description": "Reference to ProductNote \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "externalSystemProductNoteLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductNoteLineDto" + } + } + } + }, + "ProductNoteLineGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProductNoteLineGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteLineId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductNoteLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productNoteLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProductNoteLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductNoteLineUpsertResultDto" + } + } + } + }, + "ProductNoteMoveLinesToAssignmentOrStorageParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteLinesAsJson": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductNoteMoveLinesToAssignmentOrStorageResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "sys_RowState": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductNoteMoveLinesToAssignmentParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteLinesAsJson": { + "type": "string", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductNoteMoveLinesToAssignmentResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "sys_RowState": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductNoteMoveToAssignmentParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_1": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_4": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_5": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_6": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductNoteMoveToAssignmentResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "sys_RowState": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductNoteMoveToStorageParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductNoteMoveToStorageResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "sys_RowState": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductNotePreProcessProductNoteLineParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNumber": { + "type": "string", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "enum_OriginTypeId": { + "$ref": "#/components/schemas/OriginTypeEnum" + }, + "salesPriceModified": { + "type": "boolean", + "nullable": true + }, + "surchargePercentInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "enum_CostPriceSourceId": { + "$ref": "#/components/schemas/CostPriceSourceEnum" + }, + "quantity": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteLineId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductNotePreProcessProductNoteLineResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "column": { + "type": "string", + "nullable": true + }, + "textId": { + "type": "string", + "nullable": true + }, + "suggestedValue": { + "type": "string", + "nullable": true + }, + "columnState": { + "type": "integer", + "format": "int32" + }, + "enabled": { + "type": "boolean" + } + } + }, + "ProductNoteUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNoteIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProductNotes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductNoteUpsertResultDto" + } + }, + "productNoteAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteAttachmentUpsertResultDto" + } + }, + "productNoteLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteLineUpsertResultDto" + } + } + } + }, + "ProductPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productNumber": { + "type": "string", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProductSupplierIndustryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "costPriceOverride": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "discountGroupId": { + "type": "integer", + "description": "Reference to DiscountGroup \r\nType: int?", + "format": "int32", + "nullable": true + }, + "inactive": { + "type": "boolean", + "description": "Type: bool?", + "nullable": true + }, + "listPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "note": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nType: int?", + "format": "int32", + "nullable": true + }, + "productName": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "supplierProductNumber": { + "type": "string", + "description": "Not in use for Nelfo4, handles Comfort specific data (Synergo) \r\nType: string? (Max: 50)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemProductSupplierIndustryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductSupplierIndustryTypeDto" + } + } + } + }, + "ProductSupplierIndustryTypeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProductSupplierIndustryTypeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProductSupplierIndustryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProductSupplierIndustryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductSupplierIndustryTypeUpsertResultDto" + } + } + } + }, + "ProductSyncDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "productSyncId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "abortRequested": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "description": "Reference to ExternalSystem \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "fullProductNumberFrom": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "fullProductNumberTo": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "lastTransferMilliseconds": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "lastTransferredId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "productNumberFrom": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "productNumberTo": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "progress": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "progressTargetCount": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "statusDescription": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_SyncStatusId": { + "$ref": "#/components/schemas/SyncStatusEnum" + } + } + }, + "ProductSyncUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productSyncId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProductUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProducts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProductUpsertResultDto" + } + }, + "productExtendedInfos": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductExtendedInfoUpsertResultDto" + } + } + } + }, + "ProductUpsertWithSupplierIndustryTypeParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNumber": { + "type": "string", + "nullable": true + }, + "salesPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sale_VATRequired_LedgerAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sale_VATFree_LedgerAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "purchase_VATRequired_LedgerAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "purchase_VATFree_LedgerAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "inactive": { + "type": "boolean", + "nullable": true + }, + "isVarious": { + "type": "boolean", + "nullable": true + }, + "priceOnly": { + "type": "boolean", + "nullable": true + }, + "unit": { + "type": "string", + "nullable": true + }, + "vatRateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productName": { + "type": "string", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "listPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costPriceOverride": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "discountGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "note": { + "type": "string", + "nullable": true + } + } + }, + "ProductUpsertWithSupplierIndustryTypeResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "textId": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "type": "string", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "success": { + "type": "boolean", + "nullable": true + } + } + }, + "ProjectAccountCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectAccountCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "invoiceOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_ProjectAccountCategoryTypeId": { + "$ref": "#/components/schemas/ProjectAccountCategoryTypeEnum" + } + } + }, + "ProjectAccountCategoryTypeEnum": { + "type": "string", + "enum": [ + "Cost", + "Income" + ] + }, + "ProjectAccountCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectAccountCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProjectAccountDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "accountNumber": { + "type": "integer", + "description": "Type: int? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "assessment_ProjectAccountReportCategoryId": { + "type": "integer", + "description": "Reference to ProjectAccountReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "budgetUse": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "projectAccountCategoryId": { + "type": "integer", + "description": "Reference to ProjectAccountCategory \r\n__When creating records:__ ___Default value = 0___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "summary_ProjectAccountReportCategoryId": { + "type": "integer", + "description": "Reference to ProjectAccountReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemProjectAccounts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectAccountDto" + } + } + } + }, + "ProjectAccountGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProjectAccountGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectAccountId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProjectAccountPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "accountNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProjectAccountReportCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectAccountReportCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "reportText": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectAccountReportCategoryTypeId": { + "type": "integer", + "description": "Reference to ProjectAccountReportCategoryType \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "ProjectAccountReportCategoryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectAccountReportCategoryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "reportText": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectAccountReportCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryDto" + } + } + } + }, + "ProjectAccountReportCategoryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectAccountReportCategoryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "projectAccountReportCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProjectAccountReportCategoryUpsertResultDto" + } + } + } + }, + "ProjectAccountReportCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectAccountReportCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProjectAccountUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectAccountIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProjectAccounts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectAccountUpsertResultDto" + } + } + } + }, + "ProjectAssessmentTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "CoverageDegree", + "CoveragePerHour" + ] + }, + "ProjectAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "ProjectAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProjectAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProjectDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "budget_DimensionIdExternal": { + "type": "string", + "description": "External ID corresponding to Budget_DimensionId for the current ExternalSystem", + "nullable": true + }, + "caseHandler_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to CaseHandler_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "default_AssignmentCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_AssignmentCategoryId for the current ExternalSystem", + "nullable": true + }, + "default_InvoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "default_ProductAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "parentProjectIdExternal": { + "type": "string", + "description": "External ID corresponding to ParentProjectId for the current ExternalSystem", + "nullable": true + }, + "projectGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectGroupId for the current ExternalSystem", + "nullable": true + }, + "projectTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectTypeId for the current ExternalSystem", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "budget_DimensionId": { + "type": "integer", + "description": "Reference to Dimension \r\nType: int?", + "format": "int32", + "nullable": true + }, + "caseHandler_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "code": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "customersReference": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "default_AssignmentCategoryId": { + "type": "integer", + "description": "Reference to AssignmentCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_InvoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_ProductAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "endDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "estimatedCompletionPercentage": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "estimatedTotalHours": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "fixedPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "internal": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceReserveSumAllAssignment": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "marginPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "name": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "note": { + "type": "string", + "description": "Type: string? \r\nValidation: MultilineText", + "nullable": true + }, + "parentProjectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "projectAssessment": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "projectGroupId": { + "type": "integer", + "description": "Reference to ProjectGroup \r\nType: short?", + "format": "int32", + "nullable": true + }, + "projectTypeId": { + "type": "integer", + "description": "Reference to ProjectType \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "riskMarginPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\nType: short?", + "format": "int32", + "nullable": true + }, + "startDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "warrantyDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "enum_ProjectAssessmentTypeId": { + "$ref": "#/components/schemas/ProjectAssessmentTypeEnum" + }, + "enum_ProjectStatusId": { + "$ref": "#/components/schemas/ProjectStatusEnum" + }, + "contactId": { + "type": "integer", + "description": "Reference to Contact (directly updateable through Contact) \r\nType: int?", + "format": "int32", + "nullable": true + }, + "contact": { + "$ref": "#/components/schemas/ContactDto" + }, + "externalSystemProjects": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectDto" + } + }, + "projectAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProjectAttachmentDto" + } + } + } + }, + "ProjectGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProjectGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProjectGroupDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectGroupId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "projectGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectGroupId for the current ExternalSystem", + "nullable": true + }, + "code": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemProjectGroups": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectGroupDto" + } + } + } + }, + "ProjectGroupGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProjectGroupGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectGroupId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProjectGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectGroupIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProjectGroups": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectGroupUpsertResultDto" + } + } + } + }, + "ProjectPeriodDto": { + "type": "object", + "description": "Project periods are used for reporting purposes, and usually correspond to months. They are commonly synchronized with accounting periods, but can also deviate. Project periods will be auto-created as monthly periods if Settings_Main has AutoCreateProjectPeriods set to true. \r\n \r\nIf Services, ProductNoteLines or InvoiceLines are registered on a closed project period (based on dates), they will be moved to the next open period.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "endDate": { + "type": "string", + "description": "Start and end dates are inclusive. \r\n \r\nThis date must be identical to or later than the start date. \r\n__When creating records:__ ___Mandatory___ \r\nType: DateTime \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "periodNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "periodYear": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "startDate": { + "type": "string", + "description": "Start and end dates are inclusive. \r\n \r\nThe start date of the project period must be the day after the end date of the previous project period, and will be set automatically by the system when a period is created. Start and end dates may be adjusted after creation, but the project period will be invalid if there is a gap between this and the previous period. \r\nType: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemProjectPeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectPeriodDto" + } + } + } + }, + "ProjectPeriodUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProjectPeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectPeriodUpsertResultDto" + } + } + } + }, + "ProjectPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "customerId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProjectReportDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectReportDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "fromNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "reportText": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sumLevel": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "sumLevelReset": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "toNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "enum_ProjectReportDetailTypeId": { + "$ref": "#/components/schemas/ProjectReportDetailTypeEnum" + }, + "projectReportId": { + "type": "integer", + "description": "Reference to ProjectReport \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + } + } + }, + "ProjectReportDetailTypeEnum": { + "type": "string", + "enum": [ + "ProjectAccount", + "Text", + "Sum", + "Reserved", + "WageCodeReportCategory" + ] + }, + "ProjectReportDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectReportDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ProjectReportDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectReportId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "projectReportNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectReportDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProjectReportDetailDto" + } + } + } + }, + "ProjectReportPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectReportNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectReportId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ProjectReportUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectReportId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "projectReportDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProjectReportDetailUpsertResultDto" + } + } + } + }, + "ProjectStatusEnum": { + "type": "string", + "enum": [ + "NotStarted", + "InProgress", + "Completed", + "Warranty" + ] + }, + "ProjectTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "projectTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "projectTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectTypeId for the current ExternalSystem", + "nullable": true + }, + "code": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50)", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemProjectTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectTypeDto" + } + } + } + }, + "ProjectTypeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ProjectTypeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "projectTypeId": { + "type": "integer", + "format": "int32" + } + } + }, + "ProjectTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemProjectTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectTypeUpsertResultDto" + } + } + } + }, + "ProjectUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "contact": { + "$ref": "#/components/schemas/ContactUpsertResultDto" + }, + "externalSystemProjects": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemProjectUpsertResultDto" + } + }, + "projectAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProjectAttachmentUpsertResultDto" + } + } + } + }, + "PurchaseAgreementDiscountGroupDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "purchaseAgreementDiscountGroupId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "discountGroupId": { + "type": "integer", + "description": "Reference to DiscountGroup \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "listPriceDiscountPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "purchaseAgreementId": { + "type": "integer", + "description": "Reference to PurchaseAgreement \r\nType: short?", + "format": "int32", + "nullable": true + } + } + }, + "PurchaseAgreementDiscountGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "purchaseAgreementDiscountGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "PurchaseAgreementDiscountProductDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "purchaseAgreementDiscountProductId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "fixedCostPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "listPriceDiscountPercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\nType: int?", + "format": "int32", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "purchaseAgreementId": { + "type": "integer", + "description": "Reference to PurchaseAgreement \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + } + } + }, + "PurchaseAgreementDiscountProductUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "purchaseAgreementDiscountProductId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "PurchaseAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "purchaseAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "agreementCode": { + "type": "string", + "description": "Nullable because old VC agreements sometimes have an empty agreement number (which maps here) \r\nType: string? (Max: 50)", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "purchaseAgreementDiscountGroups": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDiscountGroupDto" + } + }, + "purchaseAgreementDiscountProducts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDiscountProductDto" + } + } + } + }, + "PurchaseAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "purchaseAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "purchaseAgreementDiscountGroups": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDiscountGroupUpsertResultDto" + } + }, + "purchaseAgreementDiscountProducts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDiscountProductUpsertResultDto" + } + } + } + }, + "RecalculateAssignmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32" + }, + "productNotes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteDto" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + } + } + }, + "ReprocessErrorsCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "RoleDto": { + "type": "object", + "description": "Auth.Write:ClientAdmin", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "roleId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "roleIdExternal": { + "type": "string", + "description": "External ID corresponding to RoleId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "adminFor_Enum_ClientLevelId": { + "$ref": "#/components/schemas/ClientLevelEnum" + }, + "enum_ClientLevelId": { + "$ref": "#/components/schemas/ClientLevelEnum" + }, + "externalSystemRoles": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemRoleDto" + } + } + } + }, + "RolePermissionDto": { + "type": "object", + "description": "Auth.Write:ClientAdmin", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "rolePermissionId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "rolePermissionIdExternal": { + "type": "string", + "description": "External ID corresponding to RolePermissionId for the current ExternalSystem", + "nullable": true + }, + "permissionIdExternal": { + "type": "string", + "description": "External ID corresponding to PermissionId for the current ExternalSystem", + "nullable": true + }, + "roleIdExternal": { + "type": "string", + "description": "External ID corresponding to RoleId for the current ExternalSystem", + "nullable": true + }, + "permissionId": { + "type": "integer", + "description": "Reference to Permission \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "roleId": { + "type": "integer", + "description": "Reference to Role \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemRolePermissions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemRolePermissionDto" + } + } + } + }, + "RolePermissionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "rolePermissionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rolePermissionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemRolePermissions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemRolePermissionUpsertResultDto" + } + } + } + }, + "RoleUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "roleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "roleIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemRoles": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemRoleUpsertResultDto" + } + } + } + }, + "RowStateEnum": { + "type": "string", + "enum": [ + "Ok", + "Highlight", + "IntInfo", + "Info", + "IntWarning", + "Warning", + "IntError", + "Error" + ] + }, + "SaveInvoiceCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + }, + "dueDate": { + "type": "string", + "format": "date-time" + }, + "registeredDate": { + "type": "string", + "format": "date-time" + }, + "note": { + "type": "string", + "nullable": true + }, + "invoiceComment": { + "type": "string", + "nullable": true + }, + "vatFree": { + "type": "boolean" + } + } + }, + "SaveInvoiceResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "SendInvoiceCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "SendInvoiceResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "sys_RowState": { + "type": "string", + "nullable": true + }, + "textId": { + "type": "string", + "nullable": true + } + } + }, + "ServiceAgreementDetailDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "serviceAgreementDetailId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "serviceAgreementDetailIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementDetailId for the current ExternalSystem", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeId for the current ExternalSystem", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "description": "Reference to EmployeeInvoiceCategory \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "invoiceDescription": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "surchargePercentIsVisible": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "value": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "description": "Reference to WageCode \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "enum_ServiceAgreementDetailValueTypeId": { + "$ref": "#/components/schemas/ServiceAgreementDetailValueTypeEnum" + }, + "serviceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemServiceAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemServiceAgreementDetailDto" + } + } + } + }, + "ServiceAgreementDetailGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ServiceAgreementDetailGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceAgreementDetailId": { + "type": "integer", + "format": "int32" + } + } + }, + "ServiceAgreementDetailPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ServiceAgreementDetailUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "serviceAgreementDetailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementDetailIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemServiceAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemServiceAgreementDetailUpsertResultDto" + } + } + } + }, + "ServiceAgreementDetailValueTypeEnum": { + "type": "string", + "enum": [ + "Value", + "Percent" + ] + }, + "ServiceAgreementDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: MultilineText", + "nullable": true + }, + "number": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemServiceAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemServiceAgreementDto" + } + }, + "serviceAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ServiceAgreementDetailDto" + } + } + } + }, + "ServiceAgreementGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ServiceAgreementGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceAgreementId": { + "type": "integer", + "format": "int32" + } + } + }, + "ServiceAgreementPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "number": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "nullable": true + } + } + }, + "ServiceAgreementUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "serviceAgreementId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceAgreementIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemServiceAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemServiceAgreementUpsertResultDto" + } + }, + "serviceAgreementDetails": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ServiceAgreementDetailUpsertResultDto" + } + } + } + }, + "ServiceContractDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "serviceContractId": { + "type": "integer", + "description": "__Primary key__ \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "default_AssignmentId": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "endDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "inactive": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "indexRate": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "indexRateGroupId": { + "type": "integer", + "description": "Reference to IndexRateGroup \r\n__When creating records:__ ___Mandatory___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "indexRateStartDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "invoiceRecurrencePattern": { + "type": "string", + "description": "Type: string? (Max: 1024)", + "nullable": true + }, + "recurrencePattern": { + "type": "string", + "description": "Type: string? (Max: 1024)", + "nullable": true + }, + "serviceContractNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "startDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_ServiceContractRecurrenceHandlingId": { + "$ref": "#/components/schemas/ServiceContractRecurrenceHandlingEnum" + } + } + }, + "ServiceContractRecurrenceHandlingEnum": { + "type": "string", + "enum": [ + "NotSet", + "ReOpenDefaultAssignment", + "CreateNewAssignment", + "NotifyUserOnly" + ] + }, + "ServiceContractUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "serviceContractId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "ServiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "serviceId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "serviceIdExternal": { + "type": "string", + "description": "External ID corresponding to ServiceId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "cost_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "costSurcharge_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to CostSurcharge_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_1External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_1 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_2External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_2 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_3External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_3 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_4External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_4 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_5External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_5 for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_6External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_6 for the current ExternalSystem", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "employeeInvoiceCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeInvoiceCategoryId for the current ExternalSystem", + "nullable": true + }, + "income_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "income_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "invoice_ApprovalEmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to Invoice_ApprovalEmployeeId for the current ExternalSystem", + "nullable": true + }, + "invoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceId for the current ExternalSystem", + "nullable": true + }, + "invoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to JobCategoryId for the current ExternalSystem", + "nullable": true + }, + "movedFromAssignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to MovedFromAssignmentId for the current ExternalSystem", + "nullable": true + }, + "movedToAssignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to MovedToAssignmentId for the current ExternalSystem", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "wage_ApprovalEmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to Wage_ApprovalEmployeeId for the current ExternalSystem", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeId for the current ExternalSystem", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "wagePeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to WagePeriodId for the current ExternalSystem", + "nullable": true + }, + "approvalComment": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "cost_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "costPrice": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "costPriceSurcharge": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "costPriceSurchargePercent": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "costSurcharge_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "createdFrom_ServiceId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_1": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_2": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_3": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_4": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_5": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueId_6": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "employeeInvoiceCategoryId": { + "type": "integer", + "description": "Reference to EmployeeInvoiceCategory \r\nType: short?", + "format": "int32", + "nullable": true + }, + "endDateTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "income_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoice_ApprovalEmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceDescription": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "invoiceId": { + "type": "integer", + "description": "Reference to Invoice \r\nType: int?", + "format": "int32", + "nullable": true + }, + "invoiceLineId": { + "type": "integer", + "description": "Reference to InvoiceLine \r\nType: int?", + "format": "int32", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "description": "Reference to JobCategory \r\nType: short?", + "format": "int32", + "nullable": true + }, + "movedFromAssignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "movedToAssignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "pieceworkNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nThe project period will be auto-filled in based on the StartDateTimeUTC field if it is missing. Special permissions are needed to alter the project period on an existing record. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "salesPrice": { + "type": "number", + "description": "This field will be changed to nullable \r\n__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "salesPriceInvoice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "serviceComment": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "startDateTimeUTC": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: DateTime \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "description": "Set to 0 to prevent syncing the specific line to mobile devices. Used on soft-deleted rows (Sys_Deactivated = 1) which have been hard-deleted in SpeedyCraft to prevent integration issues. \r\n__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_InvoicedProjectPeriod": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_InvoicedProjectPeriodId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_IsWorkTime": { + "type": "boolean", + "description": "Type: bool?", + "nullable": true + }, + "sys_LastChangeOrigin": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "sys_NextWageCodeProcessed": { + "type": "boolean", + "description": "When true, no next wage code processing should be performed on the service during postprocessing \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_PostProcessMessage": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "sys_PostProcessNeeded": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_ProjectAccountCategoryId": { + "type": "integer", + "description": "Type: byte?", + "format": "int32", + "nullable": true + }, + "sys_ProjectPeriod": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "wage_ApprovalEmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "description": "Reference to WageCode \r\nType: short?", + "format": "int32", + "nullable": true + }, + "wageCodeName": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "Reference to WageCodeReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "wagePeriodId": { + "type": "integer", + "description": "Reference to WagePeriod \r\nType: int?", + "format": "int32", + "nullable": true + }, + "enum_InvoicingLineStatusId": { + "$ref": "#/components/schemas/InvoicingLineStatusEnum" + }, + "enum_WageCodeInvoiceRuleId": { + "$ref": "#/components/schemas/WageCodeInvoiceRuleEnum" + }, + "enum_WagePeriodStatusId": { + "$ref": "#/components/schemas/WagePeriodStatusEnum" + }, + "invoice_Enum_ApprovalStatusId": { + "$ref": "#/components/schemas/ApprovalStatusEnum" + }, + "sys_Enum_WageCodeTypeId": { + "$ref": "#/components/schemas/WageCodeTypeEnum" + }, + "wage_Enum_ApprovalStatusId": { + "$ref": "#/components/schemas/ApprovalStatusEnum" + }, + "externalSystemServices": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemServiceDto" + } + } + } + }, + "ServiceGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "ServiceGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceId": { + "type": "integer", + "format": "int32" + } + } + }, + "ServiceMoveToAssignmentParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceIds": { + "type": "string", + "nullable": true + }, + "toAssignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_1": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_4": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_5": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dimensionValueId_6": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ServiceMoveToAssignmentResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceId": { + "type": "integer", + "format": "int32" + }, + "sys_RowState": { + "type": "integer", + "format": "int32" + } + } + }, + "ServicePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "serviceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "ServiceUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "serviceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "serviceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemServices": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemServiceUpsertResultDto" + } + } + } + }, + "SetInvoiceLineRuleWageCodeTypesCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceLineRuleId": { + "type": "integer", + "format": "int32" + }, + "enum_WageCodeTypeIds": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + } + }, + "SetInvoiceStatusCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + }, + "invoiceNumber": { + "type": "integer", + "format": "int32" + }, + "invoiceStatusId": { + "type": "integer", + "format": "int32" + } + } + }, + "SetInvoiceStatusResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "invoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "Settings_AssignmentDto": { + "type": "object", + "description": "Angitt materialavtale vil bli brukt på alle ordre om ikke annet oppgis", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "settings_AssignmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "default_AssignmentCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_AssignmentCategoryId for the current ExternalSystem", + "nullable": true + }, + "default_CasehandlerEmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_CasehandlerEmployeeId for the current ExternalSystem", + "nullable": true + }, + "default_InvoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "default_ProductAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_ProductAgreementId for the current ExternalSystem", + "nullable": true + }, + "default_ProjectIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_ProjectId for the current ExternalSystem", + "nullable": true + }, + "default_ServiceAgreementIdExternal": { + "type": "string", + "description": "External ID corresponding to Default_ServiceAgreementId for the current ExternalSystem", + "nullable": true + }, + "allowHpcTimeCorrection": { + "type": "boolean", + "description": "-Her bestemmes om bruker(e) kan korrigere importerte timer fra håndholdt (Handyman / SpeedyCraft) i brannmur. \r\n-Hvis timekodkjenning er valgt vil det ikke være mulig for brukere å korrigere her uten at denne koden er satt. \r\n-Unntak er systembruker som uavhengig av koder vil kunne foreta korrigeringer. \r\nType: bool?", + "nullable": true + }, + "approveBeforeInvoicing": { + "type": "boolean", + "description": "Hvis på må ordre godkjennes før denne kan faktureres \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "approveHoursBeforeInvoicing": { + "type": "boolean", + "description": "Saksbehandler må godkjenne timer før disse kan faktureres. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "assignmentDateToStartDate": { + "type": "boolean", + "description": "Automatisk overføring av ordrens dato til feltet for Startdato \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "budgetNew_AddAllItem": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "copyCategoryFromCustomer": { + "type": "boolean", + "description": "Hvis angitt, automatisk overføring av kundens kategori til ordrens kategori ved oppretting av nye ordrer. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "coverageRateFixedPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "coverageRateNotFixedPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "default_AssignmentCategoryId": { + "type": "integer", + "description": "Reference to AssignmentCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_CasehandlerEmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_InvoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_ProductAgreementId": { + "type": "integer", + "description": "Reference to ProductAgreement \r\nAngitt materialavtale vil bli brukt på alle ordre om ikke annet oppgis \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_ProjectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "default_ServiceAgreementId": { + "type": "integer", + "description": "Reference to ServiceAgreement \r\nAngitt timeavtale vil bli brukt på alle ordre om ikke annet oppgis \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_SyncToMobileDevice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "invoice_IsFinalInvoice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoice_SendImmediately": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mandatoryCaseHandler": { + "type": "boolean", + "description": "Hvis på må alle nye ordre opprettes med saksbehandler angitt \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mandatoryCategory": { + "type": "boolean", + "description": "Hvis på må alle nye ordre opprettes med kategori \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mandatoryHpcCategory": { + "type": "boolean", + "description": "Krysses denne av må det angis SpeedyCraft-/Handyman-kategori på alle ordre som opprettes \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "mandatoryMatAgreement": { + "type": "boolean", + "description": "Krysses denne av må det angis materialavtale på alle ordre som opprettes \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "minimumCoveragePercent": { + "type": "number", + "description": "-Her angis den ønskede dekningsgrad på ordre i bedriften. den kan overstyres pr avdeling som igjen kan overstyres på den enkelte ordre. \r\n-Ved summering av ordre i ordrebehandling vil ordre som ikke oppfyller kravet til dekningsgrad vises i rødt på skjermen \r\nType: decimal?", + "format": "decimal", + "nullable": true + }, + "noChangeCustomerAfterTimeMatInv": { + "type": "boolean", + "description": "Angir om det er lov å endre kundenummer på ordre etter at det er ført timer/materiell på denne, eller etter at ordre er fakturert \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productNote_CostPrice_Edit": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_InvoiceReserveBilledPriceCalculationId": { + "$ref": "#/components/schemas/InvoiceReserveBilledPriceCalculationEnum" + }, + "enum_InvoiceReserveFixedPriceCalculationId": { + "$ref": "#/components/schemas/InvoiceReserveFixedPriceCalculationEnum" + } + } + }, + "Settings_AssignmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "settings_AssignmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "Settings_MainDto": { + "type": "object", + "description": "Main client settings, changeable by the user. This table has one and only one row, with ID = 1.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "settings_MainId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "invoiceTemplateIdExternal": { + "type": "string", + "description": "External ID corresponding to InvoiceTemplateId for the current ExternalSystem", + "nullable": true + }, + "paymentTermIdExternal": { + "type": "string", + "description": "External ID corresponding to PaymentTermId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "standard_SupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to Standard_SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "autoFallbackProductNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "clientName": { + "type": "string", + "description": "Name of this client. Not to be confused by ClientID, which is defined in the Sys_Settings table. \r\nType: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "defaultLanguage": { + "type": "string", + "description": "Type: string? (Max: 2)", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nDefault department. There is at least one department defined on the client, even if UseDepartment is false. \r\nType: short?", + "format": "int32", + "nullable": true + }, + "email": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: Email", + "nullable": true + }, + "handleOffers": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "invoice_KeepValuesForCreditNotes": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoice_SendImmediately": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "invoiceTemplateId": { + "type": "integer", + "description": "Reference to InvoiceTemplate \r\nType: short?", + "format": "int32", + "nullable": true + }, + "paymentTermId": { + "type": "integer", + "description": "Reference to PaymentTerm \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "phoneNumberForSMS": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Phone", + "nullable": true + }, + "preserveGridSettingsLocally": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nDefault product used by e.g. SupplierInvoice if no matching product is found when importing supplier invoice lines. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "productNote_CostPrice_Edit": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectPeriod_AutoCreate": { + "type": "boolean", + "description": "Auto-creates project periods when needed, assuming one month periods. \r\n__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "projectPeriod_LastClosedYYYYPP": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "require2FAForAllUsers": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "standard_SupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "supplierInvoice_ImportWhenApproved": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "supportEmail_Partner": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Email", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "useDepartments": { + "type": "boolean", + "description": "Controls whether departments are in use for the client. Even if departments are not in use, a default department is present and used everywhere where we have department references. \r\n \r\nExample: Assignments \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "useDimensions": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "useServiceApprovalWage": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_StorageModeId": { + "$ref": "#/components/schemas/StorageModeEnum" + }, + "enum_TimeZoneId": { + "$ref": "#/components/schemas/TimeZoneEnum" + } + } + }, + "Settings_MainUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "settings_MainId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "Settings_ProductImportDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "settings_ProductImportId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "income_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Income_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSPurchase_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSPurchase_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSPurchase_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSPurchase_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSSale_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSSale_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "pOSSale_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to POSSale_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "purchase_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Purchase_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "purchase_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Purchase_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "sale_VATFree_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Sale_VATFree_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "sale_VATRequired_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Sale_VATRequired_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "income_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "pOSPurchase_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "pOSPurchase_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "pOSSale_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "pOSSale_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "purchase_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "purchase_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sale_VATFree_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sale_VATRequired_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "surchargeDiscountGroup": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + } + } + }, + "Settings_ProductImportUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "settings_ProductImportId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "Settings_UserDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "settings_UserId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "key": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "value": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string", + "nullable": true + } + } + }, + "Settings_UserUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "settings_UserId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "StockAdjustmentParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "comment": { + "type": "string", + "nullable": true + }, + "costPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "StockAdjustmentPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "format": "decimal", + "nullable": true + } + } + }, + "StockAdjustmentPreProcessResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "column": { + "type": "string", + "nullable": true + }, + "textId": { + "type": "string", + "nullable": true + }, + "suggestedValue": { + "type": "string", + "nullable": true + }, + "columnState": { + "type": "integer", + "format": "int32" + }, + "enabled": { + "type": "boolean" + } + } + }, + "StockCountDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "stockCountId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockCountIdExternal": { + "type": "string", + "description": "External ID corresponding to StockCountId for the current ExternalSystem", + "nullable": true + }, + "approvedBy_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to ApprovedBy_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "responsible_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to Responsible_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "approved": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "approvedBy_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "countEndedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "countStartedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "fullCount": { + "type": "boolean", + "description": "If true, the stock count lines is complete. This means that any stocks not matched by a stock count line is considered to have 0 items. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "responsible_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemStockCounts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockCountDto" + } + }, + "stockCountLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StockCountLineDto" + } + } + } + }, + "StockCountLineDto": { + "type": "object", + "description": "Will be set when stock adjustments have been performed for the line. When set, further stock adjustments will not be performed based on the line.", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "stockCountLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockCountLineIdExternal": { + "type": "string", + "description": "External ID corresponding to StockCountLineId for the current ExternalSystem", + "nullable": true + }, + "approvedBy_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to ApprovedBy_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "stockCountIdExternal": { + "type": "string", + "description": "External ID corresponding to StockCountId for the current ExternalSystem", + "nullable": true + }, + "stockIdExternal": { + "type": "string", + "description": "External ID corresponding to StockId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "approved": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "approvedBy_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: MultilineText", + "nullable": true + }, + "costPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "countDoneUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nType: int?", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "quantityOnStock": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "stockAdjustmentPerformed": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "stockId": { + "type": "integer", + "description": "Reference to Stock \r\nType: int?", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "stockCountId": { + "type": "integer", + "description": "Reference to StockCount \r\nThe stock count will be resolved to the latest open stock count on the given storage and product. If there is no open stock count, a new stock count will be generated. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "externalSystemStockCountLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockCountLineDto" + } + } + } + }, + "StockCountLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "stockCountLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockCountLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemStockCountLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockCountLineUpsertResultDto" + } + } + } + }, + "StockCountUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "stockCountId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockCountIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemStockCounts": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockCountUpsertResultDto" + } + }, + "stockCountLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StockCountLineUpsertResultDto" + } + } + } + }, + "StockDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "stockId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockIdExternal": { + "type": "string", + "description": "External ID corresponding to StockId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "averageCostPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "averageCostPriceFIFO": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "lastCostPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "quantityMax": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "quantityMin": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "quantityMOQ": { + "type": "number", + "description": "Auto generated purchase order should increment quantity in multiples of this \r\nType: decimal?", + "format": "decimal", + "nullable": true + }, + "quantityOnOrder": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_NextBatchSortOrder": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemStocks": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockDto" + } + } + } + }, + "StockGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "StockGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "stockId": { + "type": "integer", + "format": "int32" + } + } + }, + "StockStorageTransferParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "fromStorageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toStorageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "StockTransactionDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "stockTransactionId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "stockTransactionIdExternal": { + "type": "string", + "description": "External ID corresponding to StockTransactionId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "registeredBy_EmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to RegisteredBy_EmployeeId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "sys_ProductNoteLineIdExternal": { + "type": "string", + "description": "External ID corresponding to Sys_ProductNoteLineId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "averageCostPrice": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "averageCostPriceFIFO": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: MultilineText", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "movedFromStorageId": { + "type": "integer", + "description": "This transactions represents a move from MovedFromStorageID to MovedToStorageID. \r\nType: short?", + "format": "int32", + "nullable": true + }, + "movedToStorageId": { + "type": "integer", + "description": "This transactions represents a move from MovedFromStorageID to MovedToStorageID. \r\nType: short?", + "format": "int32", + "nullable": true + }, + "productBatchId": { + "type": "integer", + "description": "Reference to ProductBatch \r\nType: int?", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nType: int?", + "format": "int32", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\nType: int?", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "registeredBy_EmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sequenceNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "sys_CostPriceFIFO": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_CostPriceIncoming": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_CostPriceNotFIFO": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_CostPriceNotStock": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_ProductNoteLineId": { + "type": "integer", + "description": "Reference to ProductNoteLine \r\nType: int?", + "format": "int32", + "nullable": true + }, + "totalStockQuantity": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "enum_StockTransactionOriginId": { + "$ref": "#/components/schemas/StockTransactionOriginEnum" + }, + "sys_Enum_StorageModeId": { + "$ref": "#/components/schemas/StorageModeEnum" + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemStockTransactions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockTransactionDto" + } + } + } + }, + "StockTransactionGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "StockTransactionGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "stockTransactionId": { + "type": "integer", + "format": "int32" + } + } + }, + "StockTransactionOriginEnum": { + "type": "string", + "enum": [ + "StockCount_Correction", + "Man_In_Out", + "Reg_AutoF", + "Reg_Best", + "SupplierInvoice", + "Hpc_In_Out", + "ProductNote_Return", + "Reg_Vdc", + "ProductNote_In_Out", + "OutgoingInvoice_In_Out", + "Hpc_ProductNote_In_Out", + "Reg_HTerm", + "ProductNote_Delete", + "OutgoingInvoice_Delete", + "Reg_Kontant", + "Slett_Kontant", + "Slett_Lager", + "Stock_Transfer", + "Stock_AverageCostPriceUpd", + "Telle_dato" + ] + }, + "StockTransactionUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "stockTransactionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockTransactionIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemStockTransactions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockTransactionUpsertResultDto" + } + } + } + }, + "StockTransferParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "fromStorageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toStorageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "allowMoveOfNotAvailableQuantity": { + "type": "boolean", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "costPriceFromStock": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "costPriceNotStock": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "registeredBy_EmployeeId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "StockUpdateAverageCostPriceParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "averageCostPrice": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "comment": { + "type": "string", + "nullable": true + } + } + }, + "StockUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "stockId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stockIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemStocks": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStockUpsertResultDto" + } + } + } + }, + "StorageDepartmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "storageDepartmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "isDefaultStorage": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + } + } + }, + "StorageDepartmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "StorageDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "balance_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Balance_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "profitAndLoss_LedgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to ProfitAndLoss_LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "responsibleEmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to ResponsibleEmployeeId for the current ExternalSystem", + "nullable": true + }, + "balance_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "countInProgress": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "profitAndLoss_LedgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "responsibleEmployeeId": { + "type": "integer", + "description": "Reference to Employee \r\nType: int?", + "format": "int32", + "nullable": true + }, + "storageNumber": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "supplierInvoice_VirtualAssignmentNumber": { + "type": "integer", + "description": "If set, this assignment number wil auto-map to the storage when importing supplier invoices. The assignment number can be virtual or an existing assignment number. This needs to be unique across storages. \r\nType: int?", + "format": "int32", + "nullable": true + }, + "syncToMobileDevice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemStorages": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStorageDto" + } + }, + "stocks": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StockDto" + } + }, + "stockTransactions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StockTransactionDto" + } + }, + "storageDepartments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StorageDepartmentDto" + } + } + } + }, + "StorageGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "StorageGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "storageId": { + "type": "integer", + "format": "int32" + } + } + }, + "StorageModeEnum": { + "type": "string", + "enum": [ + "NotSet", + "AvgUpdOnAdd", + "FIFO" + ] + }, + "StorageTransferDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "storageTransferId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "storageTransferIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageTransferId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "storageId_FromExternal": { + "type": "string", + "description": "External ID corresponding to StorageId_From for the current ExternalSystem", + "nullable": true + }, + "storageId_ToExternal": { + "type": "string", + "description": "External ID corresponding to StorageId_To for the current ExternalSystem", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "regBy_EmployeeId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "registeredTimeUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "storageId_From": { + "type": "integer", + "description": "Reference to Storage \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "storageId_To": { + "type": "integer", + "description": "Reference to Storage \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_PostProcessNeeded": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "externalSystemStorageTransfers": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStorageTransferDto" + } + } + } + }, + "StorageTransferUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "storageTransferId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageTransferIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemStorageTransfers": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStorageTransferUpsertResultDto" + } + } + } + }, + "StorageUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "storageId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemStorages": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemStorageUpsertResultDto" + } + }, + "stocks": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StockUpsertResultDto" + } + }, + "stockTransactions": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StockTransactionUpsertResultDto" + } + }, + "storageDepartments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/StorageDepartmentUpsertResultDto" + } + } + } + }, + "SupplierDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierId for the current ExternalSystem", + "nullable": true + }, + "countryId": { + "type": "string", + "description": "Reference to Country \r\n__When creating records:__ ___Mandatory___ \r\nType: string (Max: 2)", + "nullable": true + }, + "organizationNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "supplierName": { + "type": "string", + "description": "Type: string? (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "supplierNumber": { + "type": "integer", + "description": "Type: int? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemSuppliers": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierDto" + } + }, + "addresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AddressDto" + } + } + } + }, + "SupplierGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "SupplierGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierId": { + "type": "integer", + "format": "int32" + } + } + }, + "SupplierIndustryTypeDto": { + "type": "object", + "description": "Represents a supplier given a specific industry type. In Visma Contracting, this was termed \"Grossist\".", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierId for the current ExternalSystem", + "nullable": true + }, + "customerNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "defaultUnknown_ProductSupplierIndustryTypeId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "isCustom": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isDefaultForIndustryType": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "markupForNewDiscountGroups": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "number": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "organizationNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "priceCalculationBase": { + "type": "boolean", + "description": "0=CostPrice \r\n1=ListPrice \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "priceLastUpdateDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "supplierId": { + "type": "integer", + "description": "Reference to Supplier \r\nType: int?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_IsTemplateActivated": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_IsTemplateRow": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "useOtherCurrency": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "default_PurchaseAgreementId": { + "type": "integer", + "description": "Reference to PurchaseAgreement (directly updateable through Default_PurchaseAgreement) \r\nType: short?", + "format": "int32", + "nullable": true + }, + "default_PurchaseAgreement": { + "$ref": "#/components/schemas/PurchaseAgreementDto" + }, + "externalSystemSupplierIndustryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierIndustryTypeDto" + } + }, + "purchaseAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/PurchaseAgreementDto" + } + } + } + }, + "SupplierIndustryTypeFtpInfoDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierIndustryTypeFtpInfoId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "autoImport": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "directoryPath": { + "type": "string", + "description": "Type: string? (Max: 200)", + "nullable": true + }, + "fileMask": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "ftpLastCheckedUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "maxDownloadTryCount": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 3___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "maxImportTryCount": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 3___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "password": { + "type": "string", + "description": "Type: string? (Max: 250)", + "nullable": true + }, + "server": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "userName": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: Name", + "nullable": true + }, + "enum_FileDownloadModeId": { + "$ref": "#/components/schemas/FileDownloadModeEnum" + }, + "enum_ImportFormatId": { + "$ref": "#/components/schemas/ImportFormatEnum" + }, + "enum_ImportTypeId": { + "$ref": "#/components/schemas/ImportTypeEnum" + } + } + }, + "SupplierIndustryTypeFtpInfoUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "supplierIndustryTypeFtpInfoId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "SupplierIndustryTypeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "SupplierIndustryTypeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32" + } + } + }, + "SupplierIndustryTypePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "number": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "SupplierIndustryTypeProductDeactivateParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ignoreProductsUsedAfterUTC": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ignoreProductsInUse": { + "type": "boolean", + "nullable": true + }, + "ignoreProductsInUseLast12Months": { + "type": "boolean", + "nullable": true + }, + "ignoreProductsOnSupplierInvoice": { + "type": "boolean", + "nullable": true + }, + "ignoreProductsOnSupplierInvoiceLast12Months": { + "type": "boolean", + "nullable": true + }, + "simulationMode": { + "type": "boolean", + "nullable": true + } + } + }, + "SupplierIndustryTypeProductDeactivateResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "totalAffected": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "inactiveOnly": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "simulated": { + "type": "boolean", + "nullable": true + } + } + }, + "SupplierIndustryTypeProductReactivateParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "resetInactive": { + "type": "boolean", + "nullable": true + }, + "simulationMode": { + "type": "boolean", + "nullable": true + } + } + }, + "SupplierIndustryTypeProductReactivateResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "totalAffected": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "inactiveReset": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "simulated": { + "type": "boolean", + "nullable": true + } + } + }, + "SupplierIndustryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "default_PurchaseAgreement": { + "$ref": "#/components/schemas/PurchaseAgreementUpsertResultDto" + }, + "externalSystemSupplierIndustryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierIndustryTypeUpsertResultDto" + } + }, + "purchaseAgreements": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/PurchaseAgreementUpsertResultDto" + } + } + } + }, + "SupplierInvoiceAttachmentDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierInvoiceAttachmentId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AttachmentId for the current ExternalSystem", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceId for the current ExternalSystem", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "description": "Reference to Attachment \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "supplierInvoiceId": { + "type": "integer", + "description": "Reference to SupplierInvoice \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + } + } + }, + "SupplierInvoiceAttachmentUploadDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierInvoiceId": { + "type": "integer", + "format": "int32" + }, + "attachmentCategoryId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "boolean", + "nullable": true + }, + "revisionNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "SupplierInvoiceAttachmentUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "attachmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attachmentIdExternal": { + "type": "string", + "nullable": true + }, + "supplierInvoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "SupplierInvoiceDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierInvoiceId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceId for the current ExternalSystem", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierId for the current ExternalSystem", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "invoiceDate": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "invoiceNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "isCreditNote": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "lineCount": { + "type": "integer", + "description": "The number of original lines on the supplier invoice. Used for verifying imported data. \r\nType: short?", + "format": "int32", + "nullable": true + }, + "reviewed": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sum": { + "type": "number", + "description": "Original sum from the supplier invoice. Used for verifying that we have transferred the complete invoice to Contracting. \r\nType: decimal?", + "format": "decimal", + "nullable": true + }, + "supplierCustomerNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "supplierId": { + "type": "integer", + "description": "Reference to Supplier \r\nType: int?", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "supplierNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "syncRetry": { + "type": "boolean", + "description": "Set to true to allow retry of a failed sync. Typically, supplier invoices may be missing assignment references, have invalid line specification, missing default fallback products or similar preventing supplier invoice import. Set this bit to retry if conditions change. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_PostProcessNeeded": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "voucherNumber": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "enum_SupplierInvoiceStatusId": { + "$ref": "#/components/schemas/SupplierInvoiceStatusEnum" + }, + "externalSystemSupplierInvoices": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierInvoiceDto" + } + }, + "productNotes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteDto" + } + }, + "supplierInvoiceAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentDto" + } + }, + "supplierInvoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/SupplierInvoiceLineDto" + } + } + } + }, + "SupplierInvoiceGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "SupplierInvoiceGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierInvoiceId": { + "type": "integer", + "format": "int32" + } + } + }, + "SupplierInvoiceLineDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierInvoiceLineId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "supplierInvoiceLineIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceLineId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "customerIdExternal": { + "type": "string", + "description": "External ID corresponding to CustomerId for the current ExternalSystem", + "nullable": true + }, + "departmentIdExternal": { + "type": "string", + "description": "External ID corresponding to DepartmentId for the current ExternalSystem", + "nullable": true + }, + "dimensionValueId_1External": { + "type": "string", + "description": "External ID corresponding to DimensionValueId_1 for the current ExternalSystem", + "nullable": true + }, + "ledgerAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to LedgerAccountId for the current ExternalSystem", + "nullable": true + }, + "productIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductId for the current ExternalSystem", + "nullable": true + }, + "productSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "storageIdExternal": { + "type": "string", + "description": "External ID corresponding to StorageId for the current ExternalSystem", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierInvoiceId for the current ExternalSystem", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "assignmentNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "costPrice": { + "type": "number", + "description": "Real cost price per item, including any discounts. \r\nType: decimal?", + "format": "decimal", + "nullable": true + }, + "costPricePurchaseAgreement": { + "type": "number", + "description": "Calculated value updated the supplier invoices based on our current agreement with the supplier. It is intended to use for comparison with CostPrice, to detect if we are indeed getting the agreed upon price. \r\nType: decimal?", + "format": "decimal", + "nullable": true + }, + "customerId": { + "type": "integer", + "description": "Reference to Customer \r\nType: int?", + "format": "int32", + "nullable": true + }, + "customerNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "departmentId": { + "type": "integer", + "description": "Reference to Department \r\nType: short?", + "format": "int32", + "nullable": true + }, + "departmentNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "dimensionValueId_1": { + "type": "integer", + "description": "Reference to DimensionValue \r\nType: int?", + "format": "int32", + "nullable": true + }, + "dimensionValueTxt_1": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "doNotForwardInvoice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "fallbackValueUsed": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "ledgerAccountId": { + "type": "integer", + "description": "Reference to LedgerAccount \r\nType: short?", + "format": "int32", + "nullable": true + }, + "ledgerAccountNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "lineNumber": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "productId": { + "type": "integer", + "description": "Reference to Product \r\nType: int?", + "format": "int32", + "nullable": true + }, + "productName": { + "type": "string", + "description": "Type: string? (Max: 250) \r\nValidation: Name", + "nullable": true + }, + "productNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "productSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\nType: int?", + "format": "int32", + "nullable": true + }, + "projectAccountId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "projectAccountNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "storageId": { + "type": "integer", + "description": "Reference to Storage \r\nType: short?", + "format": "int32", + "nullable": true + }, + "storageNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "vatRateTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "supplierInvoiceId": { + "type": "integer", + "description": "Reference to SupplierInvoice \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "externalSystemSupplierInvoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierInvoiceLineDto" + } + } + } + }, + "SupplierInvoiceLineGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "SupplierInvoiceLineGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierInvoiceLineId": { + "type": "integer", + "format": "int32" + } + } + }, + "SupplierInvoiceLineUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "supplierInvoiceLineId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceLineIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemSupplierInvoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierInvoiceLineUpsertResultDto" + } + } + } + }, + "SupplierInvoiceProductMatchDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "supplierInvoiceProductMatchId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "industryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to IndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierId for the current ExternalSystem", + "nullable": true + }, + "supplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to SupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "target_ProductSupplierIndustryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to Target_ProductSupplierIndustryTypeId for the current ExternalSystem", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "doNotForwardInvoice": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "industryTypeId": { + "type": "integer", + "description": "Reference to IndustryType \r\nType: byte?", + "format": "int32", + "nullable": true + }, + "productNumberTxt": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "supplierId": { + "type": "integer", + "description": "Reference to Supplier \r\nType: int?", + "format": "int32", + "nullable": true + }, + "supplierIndustryTypeId": { + "type": "integer", + "description": "Reference to SupplierIndustryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "target_ProductName": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "target_ProductSupplierIndustryTypeId": { + "type": "integer", + "description": "Reference to ProductSupplierIndustryType \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "Reference to VATRate \r\nType: byte?", + "format": "int32", + "nullable": true + } + } + }, + "SupplierInvoiceProductMatchUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "supplierInvoiceProductMatchId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "SupplierInvoiceReverseParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "supplierInvoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "voucherNo": { + "type": "string", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "SupplierInvoiceReverseResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "productNoteId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "SupplierInvoiceStatusEnum": { + "type": "string", + "enum": [ + "NotSet", + "Registered", + "Approved", + "Journaled", + "Historic", + "Deleted" + ] + }, + "SupplierInvoiceUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "supplierInvoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierInvoiceIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemSupplierInvoices": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierInvoiceUpsertResultDto" + } + }, + "productNotes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ProductNoteUpsertResultDto" + } + }, + "supplierInvoiceAttachments": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/SupplierInvoiceAttachmentUpsertResultDto" + } + }, + "supplierInvoiceLines": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/SupplierInvoiceLineUpsertResultDto" + } + } + } + }, + "SupplierUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "supplierId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "supplierIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemSuppliers": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemSupplierUpsertResultDto" + } + }, + "addresses": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/AddressUpsertResultDto" + } + } + } + }, + "SyncStatusEnum": { + "type": "string", + "enum": [ + "NotSet", + "TransferPending", + "TransferStarted", + "TransferCompleted", + "SaveCompleted", + "SaveFailed", + "SaveAborted", + "TranferFailed", + "TranferAborted" + ] + }, + "SystemNotificationDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "systemNotificationId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "detailDescriptionURL": { + "type": "string", + "description": "Type: string? (Max: 500) \r\nValidation: MultilineText", + "nullable": true + }, + "entityNavigationURL": { + "type": "string", + "description": "Type: string? (Max: 500)", + "nullable": true + }, + "isDone": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isImportant": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isReadByUser": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "isTask": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "message": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string", + "nullable": true + }, + "showFromUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "showToUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "title": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100)", + "nullable": true + }, + "enum_NotificationTypeId": { + "$ref": "#/components/schemas/NotificationTypeEnum" + } + } + }, + "SystemNotificationUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "systemNotificationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "TeamDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "teamId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 50) \r\nValidation: Name", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "teamNumber": { + "type": "integer", + "description": "Type: int? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "teamEmployees": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/TeamEmployeeDto" + } + } + } + }, + "TeamEmployeeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "teamEmployeeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "teamId": { + "type": "integer", + "description": "Reference to Team \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + } + } + }, + "TeamEmployeeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "teamEmployeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "TeamUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "teamId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "teamEmployees": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/TeamEmployeeUpsertResultDto" + } + } + } + }, + "TextEncodingEnum": { + "type": "string", + "enum": [ + "UTF8", + "UTF8_BOM", + "UTF16", + "UTF16_BOM", + "UTF16_BE", + "UTF16_BE_BOM", + "Windows_1252", + "ISO_8859_1", + "Latin1", + "ASCII", + "CP_850" + ] + }, + "TimeZoneEnum": { + "type": "string", + "enum": [ + "UTC", + "WesternEurope" + ] + }, + "TokenDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "token": { + "type": "string", + "nullable": true + } + } + }, + "TokenResponseDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "textId": { + "type": "string", + "nullable": true + }, + "token": { + "type": "string", + "nullable": true + } + } + }, + "UpdateOwnProfileCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "defaultLanguage": { + "type": "string", + "nullable": true + } + } + }, + "UpdateSyncRequestedStatusToCacheRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "integrationName": { + "type": "string", + "nullable": true + } + } + }, + "UpdateUserCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "userId": { + "type": "integer", + "format": "int32" + }, + "isInactive": { + "type": "boolean" + }, + "isClientAdmin": { + "type": "boolean" + }, + "isPayrollUser": { + "type": "boolean" + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean" + } + } + }, + "UpdateUserResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "sys_RowState": { + "type": "string", + "nullable": true + }, + "textId": { + "type": "string", + "nullable": true + } + } + }, + "UpsertCustomInvoiceLineCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "assignmentId": { + "type": "integer", + "format": "int32" + }, + "invoiceId": { + "type": "integer", + "format": "int32" + }, + "invoiceLineId": { + "type": "integer", + "format": "int32" + }, + "invoiceLineCode": { + "type": "string", + "nullable": true + }, + "invoiceLineText": { + "type": "string", + "nullable": true + }, + "quantityInvoice": { + "type": "number", + "format": "decimal" + }, + "costPrice": { + "type": "number", + "format": "decimal" + }, + "salesPriceInvoice": { + "type": "number", + "format": "decimal" + }, + "surchargePercentInvoice": { + "type": "number", + "format": "decimal" + }, + "listPrice": { + "type": "number", + "format": "decimal" + }, + "customerPrice": { + "type": "number", + "format": "decimal" + } + } + }, + "UserCommandDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "isClientWide": { + "type": "boolean" + }, + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "userCommandId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "context": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "cwUserId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "Type: string? (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "parameter": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "shortCutKey": { + "type": "string", + "description": "Type: string? (Max: 50)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "toolbarIcon": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "enum_CommandId": { + "$ref": "#/components/schemas/CommandEnum" + } + } + }, + "UserCommandUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "userCommandId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + } + } + }, + "UserRoleDto": { + "type": "object", + "description": "Auth.Write:ClientAdmin", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "userRoleId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "userRoleIdExternal": { + "type": "string", + "description": "External ID corresponding to UserRoleId for the current ExternalSystem", + "nullable": true + }, + "roleIdExternal": { + "type": "string", + "description": "External ID corresponding to RoleId for the current ExternalSystem", + "nullable": true + }, + "roleId": { + "type": "integer", + "description": "Reference to Role \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "userId": { + "type": "integer", + "description": "Reference to User \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "externalSystemUserRoles": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemUserRoleDto" + } + } + } + }, + "UserRoleUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "userRoleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "userRoleIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemUserRoles": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemUserRoleUpsertResultDto" + } + } + } + }, + "VATRateDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "vATRateId": { + "type": "integer", + "description": "__Primary key__ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "vATRateIdExternal": { + "type": "string", + "description": "External ID corresponding to VATRateId for the current ExternalSystem", + "nullable": true + }, + "code": { + "type": "string", + "description": "Type: string? (Max: 10)", + "nullable": true + }, + "defaultUnknown_ProductSupplierIndustryTypeId": { + "type": "integer", + "description": "Type: int?", + "format": "int32", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "ratePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemVATRates": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemVATRateDto" + } + } + } + }, + "VATRateGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "VATRateGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "vatRateId": { + "type": "integer", + "format": "int32" + } + } + }, + "VATRateUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "vatRateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "vatRateIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemVATRates": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemVATRateUpsertResultDto" + } + } + } + }, + "WageCodeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeId for the current ExternalSystem", + "nullable": true + }, + "cost_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to Cost_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "costSurcharge_ProjectAccountIdExternal": { + "type": "string", + "description": "External ID corresponding to CostSurcharge_ProjectAccountId for the current ExternalSystem", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "wageGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to WageGroupId for the current ExternalSystem", + "nullable": true + }, + "approveRequired": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "assignmentUpdate": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "cost_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "costSurcharge_ProjectAccountId": { + "type": "integer", + "description": "Reference to ProjectAccount \r\nType: int?", + "format": "int32", + "nullable": true + }, + "fieldsolutionServiceExport": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "isWorkTime": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "payrollExport": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = true___ \r\nType: bool", + "nullable": true + }, + "pieceworkActive": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "priceOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "quantityOnly": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "surchargePercent": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageCodeName": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: Name", + "nullable": true + }, + "wageCodeNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "Reference to WageCodeReportCategory \r\nType: int?", + "format": "int32", + "nullable": true + }, + "wageGroupId": { + "type": "integer", + "description": "Reference to WageGroup \r\nType: short?", + "format": "int32", + "nullable": true + }, + "wageRatePercent": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "enum_PieceworkTypeId": { + "$ref": "#/components/schemas/PieceworkTypeEnum" + }, + "enum_WageCodeInvoiceRuleId": { + "$ref": "#/components/schemas/WageCodeInvoiceRuleEnum" + }, + "enum_WageCodeTypeId": { + "$ref": "#/components/schemas/WageCodeTypeEnum" + }, + "externalSystemWageCodes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageCodeDto" + } + } + } + }, + "WageCodeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WageCodeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageCodeId": { + "type": "integer", + "format": "int32" + } + } + }, + "WageCodeInvoiceRuleEnum": { + "type": "string", + "enum": [ + "Invoice", + "NoInvoicing", + "InvoiceOnIndependentAgreement" + ] + }, + "WageCodePreProcessDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageCodeId": { + "type": "integer", + "format": "int32" + }, + "wageCodeNumber": { + "type": "integer", + "format": "int32" + }, + "sys_Deactivated": { + "type": "boolean" + } + } + }, + "WageCodeReportCategoryDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryId for the current ExternalSystem", + "nullable": true + }, + "wageCodeReportCategoryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryTypeId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "reportText": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageCodeReportCategoryNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryTypeId": { + "type": "integer", + "description": "Reference to WageCodeReportCategoryType \r\nType: short?", + "format": "int32", + "nullable": true + }, + "externalSystemWageCodeReportCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageCodeReportCategoryDto" + } + } + } + }, + "WageCodeReportCategoryGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WageCodeReportCategoryGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageCodeReportCategoryId": { + "type": "integer", + "format": "int32" + } + } + }, + "WageCodeReportCategoryPreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageCodeReportCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryNumber": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "WageCodeReportCategoryTypeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wageCodeReportCategoryTypeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryTypeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeReportCategoryTypeId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 100) \r\nValidation: MultilineText", + "nullable": true + }, + "reportText": { + "type": "string", + "description": "Type: string? (Max: 100)", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "externalSystemWageCodeReportCategoryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageCodeReportCategoryTypeDto" + } + }, + "wageCodeReportCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryDto" + } + } + } + }, + "WageCodeReportCategoryTypeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WageCodeReportCategoryTypeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageCodeReportCategoryTypeId": { + "type": "integer", + "format": "int32" + } + } + }, + "WageCodeReportCategoryTypeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wageCodeReportCategoryTypeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryTypeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWageCodeReportCategoryTypes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageCodeReportCategoryTypeUpsertResultDto" + } + }, + "wageCodeReportCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/WageCodeReportCategoryUpsertResultDto" + } + } + } + }, + "WageCodeReportCategoryUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wageCodeReportCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeReportCategoryIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWageCodeReportCategories": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageCodeReportCategoryUpsertResultDto" + } + } + } + }, + "WageCodeTypeEnum": { + "type": "string", + "enum": [ + "NotSet", + "OrdinaryWage", + "Overtime", + "VariousExtra", + "CarExpenses", + "TravelExpenses", + "Diet" + ] + }, + "WageCodeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWageCodes": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageCodeUpsertResultDto" + } + } + } + }, + "WageGroupDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wageGroupId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to WageGroupId for the current ExternalSystem", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageGroupName": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: Name", + "nullable": true + }, + "wageGroupNumber": { + "type": "integer", + "description": "Type: short? \r\nValidation: PositiveNumber", + "format": "int32", + "nullable": true + }, + "externalSystemWageGroups": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageGroupDto" + } + } + } + }, + "WageGroupGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WageGroupGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageGroupId": { + "type": "integer", + "format": "int32" + } + } + }, + "WageGroupUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wageGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageGroupIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWageGroups": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageGroupUpsertResultDto" + } + } + } + }, + "WagePeriodDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wagePeriodId": { + "type": "integer", + "description": "__Primary key__ \r\nType: int", + "format": "int32", + "nullable": true + }, + "wagePeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to WagePeriodId for the current ExternalSystem", + "nullable": true + }, + "projectPeriodIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectPeriodId for the current ExternalSystem", + "nullable": true + }, + "description": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: string (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "endDateUTC": { + "type": "string", + "description": "Type: DateTime? \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "periodNumber": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: byte", + "format": "int32", + "nullable": true + }, + "periodYear": { + "type": "integer", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "projectPeriodFromTimeRegistration": { + "type": "boolean", + "description": "__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "projectPeriodId": { + "type": "integer", + "description": "Reference to ProjectPeriod \r\nType: int?", + "format": "int32", + "nullable": true + }, + "startDateUTC": { + "type": "string", + "description": "__When creating records:__ ___Mandatory___ \r\nType: DateTime \r\nValidation: Unvalidated", + "format": "date-time", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "enum_WagePeriodStatusId": { + "$ref": "#/components/schemas/WagePeriodStatusEnum" + }, + "externalSystemWagePeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWagePeriodDto" + } + } + } + }, + "WagePeriodGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WagePeriodGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wagePeriodId": { + "type": "integer", + "format": "int32" + } + } + }, + "WagePeriodStatusEnum": { + "type": "string", + "enum": [ + "Waiting", + "Registered", + "ReadyForTransfer", + "Transferred", + "Calculated", + "Completed" + ] + }, + "WagePeriodUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wagePeriodId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wagePeriodIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWagePeriods": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWagePeriodUpsertResultDto" + } + } + } + }, + "WageRateDto": { + "type": "object", + "description": "If used, replaces rate + social cost as cost on projects", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wageRateId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageRateIdExternal": { + "type": "string", + "description": "External ID corresponding to WageRateId for the current ExternalSystem", + "nullable": true + }, + "jobCategoryIdExternal": { + "type": "string", + "description": "External ID corresponding to JobCategoryId for the current ExternalSystem", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "wageGroupIdExternal": { + "type": "string", + "description": "External ID corresponding to WageGroupId for the current ExternalSystem", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Type: string? (Max: 200) \r\nValidation: MultilineText", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "description": "Reference to JobCategory \r\nType: short?", + "format": "int32", + "nullable": true + }, + "projectCost": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "rate": { + "type": "number", + "description": "__When creating records:__ ___Default value = 0___ \r\nType: decimal", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageGroupId": { + "type": "integer", + "description": "Reference to WageGroup \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemWageRates": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageRateDto" + } + } + } + }, + "WageRateEmployeeDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "_FieldsContainingNull": { + "type": "array", + "description": "Workaround for setting explicit null in fields even if the fields are missing from the input JSON. \r\nThis can be an issue due to lack of control of generated accessor classes from e.g. NSwag.\r\nThis is equivalent to setting the fields explicitly to null, and indicates that the intent is to set a null value\r\nin the field.", + "nullable": true, + "items": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "description": "Optional tag which will be returned with the upsert results and webhook events. Can be used to aid with entity identification. The tag is not persisted.", + "nullable": true + }, + "wageRateEmployeeId": { + "type": "integer", + "description": "__Primary key__ \r\nType: short", + "format": "int32", + "nullable": true + }, + "wageRateEmployeeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageRateEmployeeId for the current ExternalSystem", + "nullable": true + }, + "assignmentIdExternal": { + "type": "string", + "description": "External ID corresponding to AssignmentId for the current ExternalSystem", + "nullable": true + }, + "employeeIdExternal": { + "type": "string", + "description": "External ID corresponding to EmployeeId for the current ExternalSystem", + "nullable": true + }, + "next_WageCodeIdExternal": { + "type": "string", + "description": "External ID corresponding to Next_WageCodeId for the current ExternalSystem", + "nullable": true + }, + "projectIdExternal": { + "type": "string", + "description": "External ID corresponding to ProjectId for the current ExternalSystem", + "nullable": true + }, + "wageCodeIdExternal": { + "type": "string", + "description": "External ID corresponding to WageCodeId for the current ExternalSystem", + "nullable": true + }, + "assignmentId": { + "type": "integer", + "description": "Reference to Assignment \r\nType: int?", + "format": "int32", + "nullable": true + }, + "employeeId": { + "type": "integer", + "description": "Reference to Employee \r\n__When creating records:__ ___Mandatory___ \r\nType: int", + "format": "int32", + "nullable": true + }, + "next_WageCodeId": { + "type": "integer", + "description": "Reference to WageCode \r\nType: short?", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "description": "Reference to Project \r\nType: int?", + "format": "int32", + "nullable": true + }, + "quantity": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "rate": { + "type": "number", + "description": "Type: decimal?", + "format": "decimal", + "nullable": true + }, + "sys_Deactivated": { + "type": "boolean", + "description": "The row is deactivated (soft-deleted). \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Historic": { + "type": "boolean", + "description": "The row is historic, and likely of little interest for some integrated systems such as SpeedyCraft \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "sys_Incomplete": { + "type": "boolean", + "description": "The row is incomplete, and should be disregarded in business logic and outgoing integrations. \r\n__When creating records:__ ___Default value = false___ \r\nType: bool", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "description": "Reference to WageCode \r\n__When creating records:__ ___Mandatory___ \r\nType: short", + "format": "int32", + "nullable": true + }, + "externalSystemWageRateEmployees": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageRateEmployeeDto" + } + } + } + }, + "WageRateEmployeeGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WageRateEmployeeGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageRateEmployeeId": { + "type": "integer", + "format": "int32" + } + } + }, + "WageRateEmployeePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageRateEmployeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageCodeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "employeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "next_WageCodeId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "WageRateEmployeeUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wageRateEmployeeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageRateEmployeeIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWageRateEmployees": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageRateEmployeeUpsertResultDto" + } + } + } + }, + "WageRateGetNotSyncedParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "top": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fromId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "externalSystemId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "toRowVersion": { + "type": "integer", + "format": "int64", + "nullable": true + } + } + }, + "WageRateGetNotSyncedResult": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageRateId": { + "type": "integer", + "format": "int32" + } + } + }, + "WageRatePreProcessParameters": { + "type": "object", + "additionalProperties": false, + "properties": { + "wageRateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "jobCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "projectId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "WageRateUpsertResultDto": { + "type": "object", + "additionalProperties": false, + "properties": { + "performedAction": { + "$ref": "#/components/schemas/PerformedAction" + }, + "wasCreated": { + "type": "boolean" + }, + "success": { + "type": "boolean" + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "validationErrors": { + "type": "object", + "nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "upsertTag": { + "type": "string", + "nullable": true + }, + "wageRateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "wageRateIdExternal": { + "type": "string", + "nullable": true + }, + "sys_RowState": { + "$ref": "#/components/schemas/RowStateEnum" + }, + "externalSystemWageRates": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/ExternalSystemWageRateUpsertResultDto" + } + } + } + }, + "WidgetData": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "subTitle": { + "type": "string", + "nullable": true + }, + "keyValue": { + "type": "number", + "format": "decimal", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/DataValue" + }, + "keys": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + }, + "values": { + "type": "array", + "nullable": true, + "items": { + "type": "array", + "items": { + "type": "number", + "format": "decimal" + } + } + } + } + } + }, + "securitySchemes": { + "oauth2": { + "type": "oauth2", + "description": "Authentication using OAuth2 \"bearer {token}\"", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://connect-extest.devinco.com/connect/authorize", + "tokenUrl": "https://connect-extest.devinco.com/connect/token", + "scopes": { + "contracting:api": "Scope for the access token request" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/WriteApi/ContractingWorksExt.cs b/Examples/ReadAndWrite/WriteApi/ContractingWorksExt.cs new file mode 100644 index 0000000..78a96fb --- /dev/null +++ b/Examples/ReadAndWrite/WriteApi/ContractingWorksExt.cs @@ -0,0 +1,53 @@ +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Text.Unicode; +using System.Text; + +namespace ContractingWorks.WriteApi +{ + // We need to extend the NSWag client so that we can set the Authorization header + partial class ContractingWorksClient + { + public required string CwToken { get; init; } + public required ILogger Logger { get; init; } + + // Inject the Authorization header when the request is prepared + partial void PrepareRequest(HttpClient client, HttpRequestMessage request, string url) + { + request.Headers.Authorization = new ("Bearer", CwToken); + +#if DEBUG + // Bit messy code to dump the JSON doc to the log + // in DEBUG. + // This is just to let you see the JSON doc + // we send to the REST Api. + var content = request.Content; + if (content is not null) + { + var bs = content.ReadAsByteArrayAsync().Result; + var json = UTF8Encoding.UTF8.GetString(bs); + Logger.LogInformation("Request:{json}", json); + } +#endif + } + + partial void UpdateJsonSerializerSettings(System.Text.Json.JsonSerializerOptions settings) + { + // It's important to not include null values in JSON doc to the + // REST Api. A null value means that the REST API will try to + // set the value in the table to null. + // A null value typically means "leave the value as is". + // `JsonIgnoreCondition.WhenWritingNull` means we don't include + // null values in the JSON which will leave the value as is + settings.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull ; + // The REST API assumes camelCasing which is the idiom for JavaScript + settings.PropertyNamingPolicy = JsonNamingPolicy.CamelCase ; +#if DEBUG + settings.WriteIndented = true ; +#else + settings.WriteIndented = false ; +#endif + } + + } +} diff --git a/Examples/ReadAndWrite/WriteApi/nswag.json b/Examples/ReadAndWrite/WriteApi/nswag.json new file mode 100644 index 0000000..27ce74d --- /dev/null +++ b/Examples/ReadAndWrite/WriteApi/nswag.json @@ -0,0 +1,100 @@ +{ + "runtime": "Net70", + "defaultVariables": null, + "documentGenerator": { + "fromDocument": { + "url": "https://contracting-extest-clientapi.azurewebsites.net/swagger/v3/swagger.json", + "output": "ContractingWorks.json", + "newLineBehavior": "Auto" + } + }, + "codeGenerators": { + "openApiToCSharpClient": { + "clientBaseClass": null, + "configurationClass": null, + "generateClientClasses": true, + "generateClientInterfaces": false, + "clientBaseInterface": null, + "injectHttpClient": true, + "disposeHttpClient": true, + "protectedMethods": [], + "generateExceptionClasses": true, + "exceptionClass": "ApiException", + "wrapDtoExceptions": true, + "useHttpClientCreationMethod": false, + "httpClientType": "System.Net.Http.HttpClient", + "useHttpRequestMessageCreationMethod": false, + "useBaseUrl": true, + "generateBaseUrlProperty": true, + "generateSyncMethods": false, + "generatePrepareRequestAndProcessResponseAsAsyncMethods": false, + "exposeJsonSerializerSettings": true, + "clientClassAccessModifier": "public", + "typeAccessModifier": "public", + "generateContractsOutput": false, + "contractsNamespace": null, + "contractsOutputFilePath": null, + "parameterDateTimeFormat": "s", + "parameterDateFormat": "yyyy-MM-dd", + "generateUpdateJsonSerializerSettingsMethod": true, + "useRequestAndResponseSerializationSettings": false, + "serializeTypeInformation": false, + "queryNullValue": "", + "className": "{controller}ContractingWorksClient", + "operationGenerationMode": "SingleClientFromPathSegments", + "additionalNamespaceUsages": [], + "additionalContractNamespaceUsages": [], + "generateOptionalParameters": false, + "generateJsonMethods": false, + "enforceFlagEnums": false, + "parameterArrayType": "System.Collections.Generic.IEnumerable", + "parameterDictionaryType": "System.Collections.Generic.IDictionary", + "responseArrayType": "System.Collections.Generic.List", + "responseDictionaryType": "System.Collections.Generic.Dictionary", + "wrapResponses": false, + "wrapResponseMethods": [], + "generateResponseClasses": true, + "responseClass": "SwaggerResponse", + "namespace": "ContractingWorks.WriteApi", + "requiredPropertiesMustBeDefined": true, + "dateType": "System.DateOnly", + "jsonConverters": null, + "anyType": "object", + "dateTimeType": "System.DateTimeOffset", + "timeType": "System.TimeSpan", + "timeSpanType": "System.TimeSpan", + "arrayType": "System.Collections.Generic.List", + "arrayInstanceType": "System.Collections.ObjectModel.Collection", + "dictionaryType": "System.Collections.Generic.IDictionary", + "dictionaryInstanceType": "System.Collections.Generic.Dictionary", + "arrayBaseType": "System.Collections.ObjectModel.Collection", + "dictionaryBaseType": "System.Collections.Generic.Dictionary", + "classStyle": "Poco", + "jsonLibrary": "SystemTextJson", + "generateDefaultValues": true, + "generateDataAnnotations": true, + "excludedTypeNames": [], + "excludedParameterNames": [], + "handleReferences": false, + "generateImmutableArrayProperties": false, + "generateImmutableDictionaryProperties": false, + "jsonSerializerSettingsTransformationMethod": null, + "inlineNamedArrays": false, + "inlineNamedDictionaries": false, + "inlineNamedTuples": true, + "inlineNamedAny": false, + "generateDtoTypes": true, + "generateOptionalPropertiesAsNullable": true, + "generateNullableReferenceTypes": false, + "templateDirectory": null, + "typeNameGeneratorType": null, + "propertyNameGeneratorType": null, + "enumNameGeneratorType": null, + "checksumCacheEnabled": false, + "serviceHost": null, + "serviceSchemes": null, + "output": "ContractingWorks.cs", + "newLineBehavior": "Auto" + } + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/appsettings.json b/Examples/ReadAndWrite/appsettings.json new file mode 100644 index 0000000..0e8321f --- /dev/null +++ b/Examples/ReadAndWrite/appsettings.json @@ -0,0 +1,10 @@ +{ + "contractingWorks": { + "clientId" : "", + "subjectId" : "", + "apiKey" : "", + "authenticationHost": "connect-extest.devinco.com", + "graphQlHost" : "contracting-extest-clientapi-graphql.azurewebsites.net", + "restHost" : "contracting-extest-clientapi.azurewebsites.net" + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/packages.lock.json b/Examples/ReadAndWrite/packages.lock.json new file mode 100644 index 0000000..e0bfea4 --- /dev/null +++ b/Examples/ReadAndWrite/packages.lock.json @@ -0,0 +1,371 @@ +{ + "version": 1, + "dependencies": { + "net7.0": { + "Microsoft.Extensions.Configuration.UserSecrets": { + "type": "Direct", + "requested": "[7.0.0, )", + "resolved": "7.0.0", + "contentHash": "33HPW1PmB2RS0ietBQyvOxjp4O3wlt+4tIs8KPyMn1kqp04goiZGa7+3mc69NRLv6bphkLDy0YR7Uw3aZyf8Zw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Configuration.Json": "7.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", + "Microsoft.Extensions.FileProviders.Physical": "7.0.0" + } + }, + "Microsoft.Extensions.Hosting": { + "type": "Direct", + "requested": "[7.0.1, )", + "resolved": "7.0.1", + "contentHash": "aoeMou6XSW84wiqd895OdaGyO9PfH6nohQJ0XBcshRDafbdIU6PQIVl8TpOCssPYq3ciRseP5064hbFyCR9J9w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Configuration.Binder": "7.0.3", + "Microsoft.Extensions.Configuration.CommandLine": "7.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "7.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0", + "Microsoft.Extensions.Configuration.Json": "7.0.0", + "Microsoft.Extensions.Configuration.UserSecrets": "7.0.0", + "Microsoft.Extensions.DependencyInjection": "7.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", + "Microsoft.Extensions.FileProviders.Physical": "7.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging.Configuration": "7.0.0", + "Microsoft.Extensions.Logging.Console": "7.0.0", + "Microsoft.Extensions.Logging.Debug": "7.0.0", + "Microsoft.Extensions.Logging.EventLog": "7.0.0", + "Microsoft.Extensions.Logging.EventSource": "7.0.0", + "Microsoft.Extensions.Options": "7.0.1", + "System.Diagnostics.DiagnosticSource": "7.0.1" + } + }, + "StrawberryShake.Transport.Http": { + "type": "Direct", + "requested": "[13.0.5, )", + "resolved": "13.0.5", + "contentHash": "IaYeP3uEsgNxsB2ilLOfthqMExThcl+nelk+7IR5pYxluwQVfe5Jy/RArEKoSWOxfUb2Ap15OU3q0qKZHd32KQ==", + "dependencies": { + "Microsoft.AspNetCore.WebUtilities": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", + "Microsoft.Extensions.Http": "3.1.0", + "StrawberryShake.Core": "13.0.5", + "System.Net.Http.Json": "3.2.1" + } + }, + "Microsoft.AspNetCore.WebUtilities": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "9ErxAAKaDzxXASB/b5uLEkLgUWv1QbeVxyJYEHQwMaxXOeFFVkQxiq8RyfVcifLU7NR0QY0p3acqx4ZpYfhHDg==", + "dependencies": { + "Microsoft.Net.Http.Headers": "2.2.0", + "System.Text.Encodings.Web": "4.5.0" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "7.0.3", + "contentHash": "1eRFwJBrkkncTpvh6mivB8zg4uBVm6+Y6stEJERrVEqZZc8Hvf+N1iIgj2ySYDUQko4J1Gw1rLf1M8bG83F0eA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + } + }, + "Microsoft.Extensions.Configuration.CommandLine": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "a8Iq8SCw5m8W5pZJcPCgBpBO4E89+NaObPng+ApIhrGSv9X4JPrcFAaGM4sDgR0X83uhLgsNJq8VnGP/wqhr8A==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + } + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "RIkfqCkvrAogirjsqSrG1E1FxgrLsOZU2nhRbl07lrajnxzSU2isj2lwQah0CtCbLWo/pOIukQzM1GfneBUnxA==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + } + }, + "Microsoft.Extensions.Configuration.FileExtensions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", + "Microsoft.Extensions.FileProviders.Physical": "7.0.0", + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.Configuration.Json": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", + "System.Text.Json": "7.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "h3j/QfmFN4S0w4C2A6X7arXij/M/OVw3uQHSOFxnND4DyAzO1F9eMX7Eti7lU/OkSthEE0WzRsfT/Dmx86jzCw==" + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Physical": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "7.0.0", + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.FileSystemGlobbing": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w==" + }, + "Microsoft.Extensions.Hosting.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "43n9Je09z0p/7ViPxfRqs5BUItRLNVh5b6JH40F2Agkh2NBsY/jpNYTtbCcxrHCsA3oRmbR6RJBzUutB4VZvNQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + } + }, + "Microsoft.Extensions.Http": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "DLigdcV0nYaT6/ly0rnfP80BnXq8NNd/h8/SkfY39uio7Bd9LauVntp6RcRh1Kj23N+uf80GgL7Win6P3BCtoQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", + "Microsoft.Extensions.Logging": "3.1.0", + "Microsoft.Extensions.Options": "3.1.0" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "7.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0", + "Microsoft.Extensions.Options": "7.0.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "kmn78+LPVMOWeITUjIlfxUPDsI0R6G0RkeAMBmQxAJ7vBJn4q2dTva7pWi65ceN5vPGjJ9q/Uae2WKgvfktJAw==" + }, + "Microsoft.Extensions.Logging.Configuration": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "FLDA0HcffKA8ycoDQLJuCNGIE42cLWPxgdQGRBaSzZrYTkMBjnf9zrr8pGT06psLq9Q+RKWmmZczQ9bCrXEBcA==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Configuration.Binder": "7.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0", + "Microsoft.Extensions.Options": "7.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "7.0.0" + } + }, + "Microsoft.Extensions.Logging.Console": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "qt5n8bHLZPUfuRnFxJKW5q9ZwOTncdh96rtWzWpX3Y/064MlxzCSw2ELF5Jlwdo+Y4wK3I47NmUTFsV7Sg8rqg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging.Configuration": "7.0.0", + "Microsoft.Extensions.Options": "7.0.0", + "System.Text.Json": "7.0.0" + } + }, + "Microsoft.Extensions.Logging.Debug": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "tFGGyPDpJ8ZdQdeckCArP7nZuoY3am9zJWuvp4OD1bHq65S0epW9BNHzAWeaIO4eYwWnGm1jRNt3vRciH8H6MA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0" + } + }, + "Microsoft.Extensions.Logging.EventLog": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "Rp7cYL9xQRVTgjMl77H5YDxszAaO+mlA+KT0BnLSVhuCoKQQOOs1sSK2/x8BK2dZ/lKeAC/CVF+20Ef2dpKXwg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0", + "Microsoft.Extensions.Options": "7.0.0", + "System.Diagnostics.EventLog": "7.0.0" + } + }, + "Microsoft.Extensions.Logging.EventSource": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "MxQXndQFviIyOPqyMeLNshXnmqcfzEHE2wWcr7BF1unSisJgouZ3tItnq+aJLGPojrW8OZSC/ZdRoR6wAq+c7w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Logging": "7.0.0", + "Microsoft.Extensions.Logging.Abstractions": "7.0.0", + "Microsoft.Extensions.Options": "7.0.0", + "Microsoft.Extensions.Primitives": "7.0.0", + "System.Text.Json": "7.0.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "7.0.1", + "contentHash": "pZRDYdN1FpepOIfHU62QoBQ6zdAoTvnjxFfqAzEd9Jhb2dfhA5i6jeTdgGgcgTWFRC7oT0+3XrbQu4LjvgX1Nw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "95UnxZkkFdXxF6vSrtJsMHCzkDeSMuUWGs2hDT54cX+U5eVajrCJ3qLyQRW+CtpTt5OJ8bmTvpQVHu1DLhH+cA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Configuration.Binder": "7.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", + "Microsoft.Extensions.Options": "7.0.0", + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" + }, + "Microsoft.Net.Http.Headers": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "iZNkjYqlo8sIOI0bQfpsSoMTmB/kyvmV2h225ihyZT33aTp48ZpF6qYnXxzSXmHt8DpBAwBTX+1s1UFLbYfZKg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0", + "System.Buffers": "4.5.0" + } + }, + "StrawberryShake.Core": { + "type": "Transitive", + "resolved": "13.0.5", + "contentHash": "WaWhij/sQ5DisbqmPJQ6GLsxeK0YZyjldSWph2ChoUB/fq5c/TIzA11HjUaXs8QQpTlrDYEayg4r4iJnrnzjaA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", + "StrawberryShake.Resources": "13.0.5", + "System.Collections.Immutable": "5.0.0", + "System.Text.Json": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "StrawberryShake.Resources": { + "type": "Transitive", + "resolved": "13.0.5", + "contentHash": "0wOTG4L/Mft3vYRbuNAZDO2YB/6YojS8uMeygChbBKzS9UxE+q97HuxA/dfazuY4PJFBR+co82I8TV2NLw64fg==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==" + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "7.0.1", + "contentHash": "T9SLFxzDp0SreCffRDXSAS5G+lq6E8qP4knHS2IBjwCdx2KEvGnGZsq7gFpselYOda7l6gXsJMD93TQsFj/URA==" + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" + }, + "System.Net.Http.Json": { + "type": "Transitive", + "resolved": "3.2.1", + "contentHash": "KkevRTwX9uMYxuxG2/wSql8FIAItB89XT36zoh6hraQkFhf2yjotDswpAKzeuaEuMhAia6c50oZMkP1PJoYufQ==", + "dependencies": { + "System.Text.Json": "4.7.2" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "DaGSsVqKsn/ia6RG8frjwmJonfos0srquhw09TlT8KRw5I43E+4gs+/bZj4K0vShJ5H9imCuXupb4RmS+dBy3w==", + "dependencies": { + "System.Text.Encodings.Web": "7.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==" + } + } + } +} \ No newline at end of file diff --git a/Examples/ReadAndWrite/schema.graphql b/Examples/ReadAndWrite/schema.graphql new file mode 100644 index 0000000..358510e --- /dev/null +++ b/Examples/ReadAndWrite/schema.graphql @@ -0,0 +1,10357 @@ +schema { + query: Query +} + +input OrderByGraph { + path: String! + descending: Boolean +} + +type Query { + addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AddressSet + appointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AppointmentSet + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + assignmentAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentAttachmentSet + assignmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentCategorySet + assignmentMOMs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentMOMSet + assignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentParticipantSet + assignmentProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProductAgreementSet + assignmentProjectPeriodInvoiceReserves(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProjectPeriodInvoiceReserveSet + assignmentPurchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentPurchaseAgreementSet + attachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentSet + attachmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentCategorySet + boligmappaAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BoligmappaAttachmentSet + budgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetSet + budgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLineSet + budgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLinePeriodSet + budgetScenarios(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetScenarioSet + competencies(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CompetencySet + competencyGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CompetencyGroupSet + consumptionStatisticses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ConsumptionStatisticsSet + contacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactSet + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet + countries(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CountrySet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + customerAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerAttachmentSet + customerProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerProductAgreementSet + departments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DepartmentSet + dimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionSet + dimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionUseSet + dimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionValueSet + dimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionValueUseSet + discountGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DiscountGroupSet + employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet + employee_Competencies(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Employee_CompetencySet + employeeAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeAttachmentSet + employeeInvoiceCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeInvoiceCategorySet + enum_ApprovalStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ApprovalStatusSet + enum_AssignmentProgresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_AssignmentProgressSet + enum_AssignmentStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_AssignmentStatusSet + enum_AssignmentTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_AssignmentTypeSet + enum_AttachmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_AttachmentCategorySet + enum_BoligmappaIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_BoligmappaIndustryTypeSet + enum_ClientLevels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ClientLevelSet + enum_Commands(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_CommandSet + enum_ContractTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ContractTypeSet + enum_CostPriceSources(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_CostPriceSourceSet + enum_DebtCollectionStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_DebtCollectionStatusSet + enum_DimensionLevels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_DimensionLevelSet + enum_DocumentOrigins(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_DocumentOriginSet + enum_EmployeeStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_EmployeeStatusSet + enum_FileDownloadModes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_FileDownloadModeSet + enum_ImportFormats(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ImportFormatSet + enum_ImportFrequencies(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ImportFrequencySet + enum_ImportStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ImportStatusSet + enum_ImportTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ImportTypeSet + enum_IndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_IndustryTypeSet + enum_IntegratedSystemTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_IntegratedSystemTypeSet + enum_InvoiceLineRuleTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoiceLineRuleTypeSet + enum_InvoiceLineRuleTypeDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoiceLineRuleTypeDetailSet + enum_InvoiceLineTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoiceLineTypeSet + enum_InvoiceReserveBilledPriceCalculations(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoiceReserveBilledPriceCalculationSet + enum_InvoiceReserveFixedPriceCalculations(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoiceReserveFixedPriceCalculationSet + enum_InvoiceStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoiceStatusSet + enum_InvoicingLineStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_InvoicingLineStatusSet + enum_LogLevels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_LogLevelSet + enum_MessageChannels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_MessageChannelSet + enum_MessageDeliveryStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_MessageDeliveryStatusSet + enum_MOM_Types(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_MOM_TypeSet + enum_NotificationTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_NotificationTypeSet + enum_OriginTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_OriginTypeSet + enum_ParticipantStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ParticipantStatusSet + enum_PayrollFormats(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_PayrollFormatSet + enum_PieceworkTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_PieceworkTypeSet + enum_ProductAgreementDetail_PriceTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ProductAgreementDetail_PriceTypeSet + enum_ProjectAccountCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ProjectAccountCategoryTypeSet + enum_ProjectAssessmentTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ProjectAssessmentTypeSet + enum_ProjectReportDetailTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ProjectReportDetailTypeSet + enum_ProjectStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ProjectStatusSet + enum_RowStates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_RowStateSet + enum_ServiceAgreementDetailValueTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ServiceAgreementDetailValueTypeSet + enum_ServiceContractRecurrenceHandlings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_ServiceContractRecurrenceHandlingSet + enum_StockTransactionOrigins(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_StockTransactionOriginSet + enum_StorageModes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_StorageModeSet + enum_SupplierInvoiceStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_SupplierInvoiceStatusSet + enum_SyncStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_SyncStatusSet + enum_SystemMessageSources(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_SystemMessageSourceSet + enum_TimeZones(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_TimeZoneSet + enum_WageCodeInvoiceRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_WageCodeInvoiceRuleSet + enum_WageCodeTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_WageCodeTypeSet + enum_WagePeriodStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Enum_WagePeriodStatusSet + externalSystems(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSet + externalSystemAddresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAddressSet + externalSystemAppointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAppointmentSet + externalSystemAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentSet + externalSystemAssignmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentCategorySet + externalSystemAssignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentParticipantSet + externalSystemAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAttachmentSet + externalSystemBudgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetSet + externalSystemBudgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLineSet + externalSystemBudgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLinePeriodSet + externalSystemBudgetScenarios(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetScenarioSet + externalSystemContacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemContactSet + externalSystemCustomers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemCustomerSet + externalSystemDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDepartmentSet + externalSystemDimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionSet + externalSystemDimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionUseSet + externalSystemDimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueSet + externalSystemDimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueUseSet + externalSystemEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeSet + externalSystemEmployeeInvoiceCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeInvoiceCategorySet + externalSystemExtraDatas(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemExtraDataSet + externalSystemIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemIndustryTypeSet + externalSystemInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceSet + externalSystemInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineSet + externalSystemInvoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineRuleSet + externalSystemInvoiceTemplates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateSet + externalSystemInvoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateDetailSet + externalSystemJobCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemJobCategorySet + externalSystemLedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemLedgerAccountSet + externalSystemPaymentTerms(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPaymentTermSet + externalSystemPermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPermissionSet + externalSystemProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSet + externalSystemProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementSet + externalSystemProductAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementDetailSet + externalSystemProductNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteSet + externalSystemProductNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteLineSet + externalSystemProductSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSupplierIndustryTypeSet + externalSystemProjects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectSet + externalSystemProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectAccountSet + externalSystemProjectGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectGroupSet + externalSystemProjectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectPeriodSet + externalSystemProjectTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectTypeSet + externalSystemRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRoleSet + externalSystemRolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRolePermissionSet + externalSystemServices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceSet + externalSystemServiceAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementSet + externalSystemServiceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementDetailSet + externalSystemStocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockSet + externalSystemStockCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountSet + externalSystemStockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountLineSet + externalSystemStockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockTransactionSet + externalSystemStorages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageSet + externalSystemStorageTransfers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageTransferSet + externalSystemSuppliers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierSet + externalSystemSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierIndustryTypeSet + externalSystemSupplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceSet + externalSystemSupplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceLineSet + externalSystemUserRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemUserRoleSet + externalSystemVATRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemVATRateSet + externalSystemWageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeSet + externalSystemWageCodeReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategorySet + externalSystemWageCodeReportCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategoryTypeSet + externalSystemWageGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageGroupSet + externalSystemWagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWagePeriodSet + externalSystemWageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateSet + externalSystemWageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateEmployeeSet + importFiles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ImportFileSet + indexRateGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IndexRateGroupSet + industryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IndustryTypeSet + integratedSystemConfigs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegratedSystemConfigSet + integrationBlackLists(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationBlackListSet + integrationStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatusSet + integrationStatus_Incomings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatus_IncomingSet + integrators(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegratorSet + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + invoiceAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceAttachmentSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLine_Sessions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLine_SessionSet + invoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + invoiceLineRuleTypeDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleTypeDetailSet + invoiceTemplates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceTemplateSet + invoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceTemplateDetailSet + jobCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): JobCategorySet + ledgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): LedgerAccountSet + mapDatas(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): MapDataSet + mapDataValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): MapDataValueSet + paymentTerms(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PaymentTermSet + permissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PermissionSet + products(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductAgreementSet + productAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductAgreementDetailSet + productBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductBatchSet + productCampaigns(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductCampaignSet + productExtendedInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductExtendedInfoSet + productImports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductImportSet + productImportFileSets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductImportFileSetSet + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + productNoteAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteAttachmentSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineBatchSet + productSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSupplierIndustryTypeSet + productSyncs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSyncSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + projectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountSet + projectAccountCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountCategorySet + projectAccountReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountReportCategorySet + projectAccountReportCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountReportCategoryTypeSet + projectAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAttachmentSet + projectGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectGroupSet + projectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectPeriodSet + projectProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectProductAgreementSet + projectPurchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectPurchaseAgreementSet + projectReports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectReportSet + projectReportDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectReportDetailSet + projectTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectTypeSet + purchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementSet + purchaseAgreementDiscountGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementDiscountGroupSet + purchaseAgreementDiscountProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementDiscountProductSet + roles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): RoleSet + rolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): RolePermissionSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceAgreementSet + serviceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceAgreementDetailSet + serviceContracts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceContractSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + settings_Payrolls(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_PayrollSet + settings_ProductImports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_Users(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_UserSet + stocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockSet + stockCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountSet + stockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + storages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageSet + storageDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageDepartmentSet + storageTransfers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageTransferSet + suppliers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierSet + supplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeSet + supplierIndustryTypeFtpInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeFtpInfoSet + supplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceSet + supplierInvoiceAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceAttachmentSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + supplierInvoiceProductMatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceProductMatchSet + systemMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SystemMessageSet + systemNotifications(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SystemNotificationSet + teams(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): TeamSet + teamEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): TeamEmployeeSet + temp_SpeedyCraftSyncEvents(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Temp_SpeedyCraftSyncEventSet + temp_WebhookMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Temp_WebhookMessageSet + users(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserSet + userCommands(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserCommandSet + userRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserRoleSet + vATRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): VATRateSet + view_Appointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_AppointmentSet + view_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_AssignmentSet + view_AssignmentContacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_AssignmentContactSet + view_AssignmentDimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_AssignmentDimensionSet + view_AssignmentDimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_AssignmentDimensionValueSet + view_AttachmentWithSyncs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_AttachmentWithSyncSet + view_BoligmappaAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_BoligmappaAttachmentSet + view_ConsumptionStatisticses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ConsumptionStatisticsSet + view_CustomerContacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_CustomerContactSet + view_CustomerInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_CustomerInvoiceSet + view_DimensionValueWithDimensionLevels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_DimensionValueWithDimensionLevelSet + view_Employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_EmployeeSet + view_EmployeesForAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_EmployeesForAssignmentSet + view_IntPricesAndProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_IntPricesAndProductSet + view_InvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_InvoiceLineSet + view_InvoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_InvoiceLineRuleSet + view_InvoiceLineRuleTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_InvoiceLineRuleTypeSet + view_InvoicesForAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_InvoicesForAssignmentSet + view_LookupAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_LookupAssignmentSet + view_MOMs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_MOMSet + view_ProductNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ProductNoteLineSet + view_ProductNoteLinePriceUpdates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ProductNoteLinePriceUpdateSet + view_ProductSupplierIndustryTypeWithPrices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ProductSupplierIndustryTypeWithPriceSet + view_ProjectAccountsForBudgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ProjectAccountsForBudgetSet + view_ProjectReportDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ProjectReportDetailSet + view_Services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ServiceSet + view_SpeedycraftProductSupplierIndustryTypeWithPrices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_SpeedycraftProductSupplierIndustryTypeWithPriceSet + view_Stocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockSet + view_StockCountLine_Counteds(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockCountLine_CountedSet + view_StockCountLine_MyCountings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockCountLine_MyCountingSet + view_StockCountLine_NotCounteds(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockCountLine_NotCountedSet + view_StockCountLine_TotalCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockCountLine_TotalCountSet + view_StockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + view_StockTransactionByDates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionByDateSet + view_StockTransactionSummaries(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSummarySet + view_Storages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StorageSet + view_SupplierIndustryType_ProductUsages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_SupplierIndustryType_ProductUsageSet + view_SupplierIndustryTypeFileSpecs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_SupplierIndustryTypeFileSpecSet + view_SupplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_SupplierInvoiceSet + view_SupplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_SupplierInvoiceLineSet + view_Users(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_UserSet + view_UserPermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_UserPermissionSet + view_WageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_WageCodeSet + view_WageCodeReportCategoryForBudgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_WageCodeReportCategoryForBudgetSet + view_WageCodesForAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_WageCodesForAssignmentSet + view_WagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_WagePeriodSet + wageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet + wageCodeReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeReportCategorySet + wageCodeReportCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeReportCategoryTypeSet + wageGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageGroupSet + wagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WagePeriodSet + wageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateSet + wageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateEmployeeSet +} + +type AddressSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Address!] +} + +type AppointmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Appointment!] +} + +type AssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Assignment!] +} + +type AssignmentAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentAttachment!] +} + +type AssignmentCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentCategory!] +} + +type AssignmentMOMSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentMOM!] +} + +type AssignmentParticipantSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentParticipant!] +} + +type AssignmentProductAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentProductAgreement!] +} + +type AssignmentProjectPeriodInvoiceReserveSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentProjectPeriodInvoiceReserve!] +} + +type AssignmentPurchaseAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AssignmentPurchaseAgreement!] +} + +type AttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Attachment!] +} + +type AttachmentCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [AttachmentCategory!] +} + +type BoligmappaAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [BoligmappaAttachment!] +} + +type BudgetSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Budget!] +} + +type BudgetLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [BudgetLine!] +} + +type BudgetLinePeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [BudgetLinePeriod!] +} + +type BudgetScenarioSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [BudgetScenario!] +} + +type CompetencySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Competency!] +} + +type CompetencyGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [CompetencyGroup!] +} + +type ConsumptionStatisticsSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ConsumptionStatistics!] +} + +type ContactSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Contact!] +} + +type ContactMessageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ContactMessage!] +} + +type CountrySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Country!] +} + +type CustomerSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Customer!] +} + +type CustomerAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [CustomerAttachment!] +} + +type CustomerProductAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [CustomerProductAgreement!] +} + +type DepartmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Department!] +} + +type DimensionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Dimension!] +} + +type DimensionUseSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [DimensionUse!] +} + +type DimensionValueSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [DimensionValue!] +} + +type DimensionValueUseSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [DimensionValueUse!] +} + +type DiscountGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [DiscountGroup!] +} + +type EmployeeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Employee!] +} + +type Employee_CompetencySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Employee_Competency!] +} + +type EmployeeAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [EmployeeAttachment!] +} + +type EmployeeInvoiceCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [EmployeeInvoiceCategory!] +} + +type Enum_ApprovalStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ApprovalStatus!] +} + +type Enum_AssignmentProgressSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_AssignmentProgress!] +} + +type Enum_AssignmentStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_AssignmentStatus!] +} + +type Enum_AssignmentTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_AssignmentType!] +} + +type Enum_AttachmentCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_AttachmentCategory!] +} + +type Enum_BoligmappaIndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_BoligmappaIndustryType!] +} + +type Enum_ClientLevelSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ClientLevel!] +} + +type Enum_CommandSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_Command!] +} + +type Enum_ContractTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ContractType!] +} + +type Enum_CostPriceSourceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_CostPriceSource!] +} + +type Enum_DebtCollectionStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_DebtCollectionStatus!] +} + +type Enum_DimensionLevelSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_DimensionLevel!] +} + +type Enum_DocumentOriginSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_DocumentOrigin!] +} + +type Enum_EmployeeStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_EmployeeStatus!] +} + +type Enum_FileDownloadModeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_FileDownloadMode!] +} + +type Enum_ImportFormatSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ImportFormat!] +} + +type Enum_ImportFrequencySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ImportFrequency!] +} + +type Enum_ImportStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ImportStatus!] +} + +type Enum_ImportTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ImportType!] +} + +type Enum_IndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_IndustryType!] +} + +type Enum_IntegratedSystemTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_IntegratedSystemType!] +} + +type Enum_InvoiceLineRuleTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoiceLineRuleType!] +} + +type Enum_InvoiceLineRuleTypeDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoiceLineRuleTypeDetail!] +} + +type Enum_InvoiceLineTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoiceLineType!] +} + +type Enum_InvoiceReserveBilledPriceCalculationSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoiceReserveBilledPriceCalculation!] +} + +type Enum_InvoiceReserveFixedPriceCalculationSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoiceReserveFixedPriceCalculation!] +} + +type Enum_InvoiceStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoiceStatus!] +} + +type Enum_InvoicingLineStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_InvoicingLineStatus!] +} + +type Enum_LogLevelSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_LogLevel!] +} + +type Enum_MessageChannelSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_MessageChannel!] +} + +type Enum_MessageDeliveryStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_MessageDeliveryStatus!] +} + +type Enum_MOM_TypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_MOM_Type!] +} + +type Enum_NotificationTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_NotificationType!] +} + +type Enum_OriginTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_OriginType!] +} + +type Enum_ParticipantStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ParticipantStatus!] +} + +type Enum_PayrollFormatSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_PayrollFormat!] +} + +type Enum_PieceworkTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_PieceworkType!] +} + +type Enum_ProductAgreementDetail_PriceTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ProductAgreementDetail_PriceType!] +} + +type Enum_ProjectAccountCategoryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ProjectAccountCategoryType!] +} + +type Enum_ProjectAssessmentTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ProjectAssessmentType!] +} + +type Enum_ProjectReportDetailTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ProjectReportDetailType!] +} + +type Enum_ProjectStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ProjectStatus!] +} + +type Enum_RowStateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_RowState!] +} + +type Enum_ServiceAgreementDetailValueTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ServiceAgreementDetailValueType!] +} + +type Enum_ServiceContractRecurrenceHandlingSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_ServiceContractRecurrenceHandling!] +} + +type Enum_StockTransactionOriginSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_StockTransactionOrigin!] +} + +type Enum_StorageModeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_StorageMode!] +} + +type Enum_SupplierInvoiceStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_SupplierInvoiceStatus!] +} + +type Enum_SyncStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_SyncStatus!] +} + +type Enum_SystemMessageSourceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_SystemMessageSource!] +} + +type Enum_TimeZoneSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_TimeZone!] +} + +type Enum_WageCodeInvoiceRuleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_WageCodeInvoiceRule!] +} + +type Enum_WageCodeTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_WageCodeType!] +} + +type Enum_WagePeriodStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Enum_WagePeriodStatus!] +} + +type ExternalSystemSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystem!] +} + +type ExternalSystemAddressSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemAddress!] +} + +type ExternalSystemAppointmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemAppointment!] +} + +type ExternalSystemAssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemAssignment!] +} + +type ExternalSystemAssignmentCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemAssignmentCategory!] +} + +type ExternalSystemAssignmentParticipantSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemAssignmentParticipant!] +} + +type ExternalSystemAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemAttachment!] +} + +type ExternalSystemBudgetSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemBudget!] +} + +type ExternalSystemBudgetLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemBudgetLine!] +} + +type ExternalSystemBudgetLinePeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemBudgetLinePeriod!] +} + +type ExternalSystemBudgetScenarioSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemBudgetScenario!] +} + +type ExternalSystemContactSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemContact!] +} + +type ExternalSystemCustomerSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemCustomer!] +} + +type ExternalSystemDepartmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemDepartment!] +} + +type ExternalSystemDimensionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemDimension!] +} + +type ExternalSystemDimensionUseSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemDimensionUse!] +} + +type ExternalSystemDimensionValueSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemDimensionValue!] +} + +type ExternalSystemDimensionValueUseSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemDimensionValueUse!] +} + +type ExternalSystemEmployeeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemEmployee!] +} + +type ExternalSystemEmployeeInvoiceCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemEmployeeInvoiceCategory!] +} + +type ExternalSystemExtraDataSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemExtraData!] +} + +type ExternalSystemIndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemIndustryType!] +} + +type ExternalSystemInvoiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemInvoice!] +} + +type ExternalSystemInvoiceLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemInvoiceLine!] +} + +type ExternalSystemInvoiceLineRuleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemInvoiceLineRule!] +} + +type ExternalSystemInvoiceTemplateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemInvoiceTemplate!] +} + +type ExternalSystemInvoiceTemplateDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemInvoiceTemplateDetail!] +} + +type ExternalSystemJobCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemJobCategory!] +} + +type ExternalSystemLedgerAccountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemLedgerAccount!] +} + +type ExternalSystemPaymentTermSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemPaymentTerm!] +} + +type ExternalSystemPermissionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemPermission!] +} + +type ExternalSystemProductSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProduct!] +} + +type ExternalSystemProductAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProductAgreement!] +} + +type ExternalSystemProductAgreementDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProductAgreementDetail!] +} + +type ExternalSystemProductNoteSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProductNote!] +} + +type ExternalSystemProductNoteLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProductNoteLine!] +} + +type ExternalSystemProductSupplierIndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProductSupplierIndustryType!] +} + +type ExternalSystemProjectSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProject!] +} + +type ExternalSystemProjectAccountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProjectAccount!] +} + +type ExternalSystemProjectGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProjectGroup!] +} + +type ExternalSystemProjectPeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProjectPeriod!] +} + +type ExternalSystemProjectTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemProjectType!] +} + +type ExternalSystemRoleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemRole!] +} + +type ExternalSystemRolePermissionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemRolePermission!] +} + +type ExternalSystemServiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemService!] +} + +type ExternalSystemServiceAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemServiceAgreement!] +} + +type ExternalSystemServiceAgreementDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemServiceAgreementDetail!] +} + +type ExternalSystemStockSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemStock!] +} + +type ExternalSystemStockCountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemStockCount!] +} + +type ExternalSystemStockCountLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemStockCountLine!] +} + +type ExternalSystemStockTransactionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemStockTransaction!] +} + +type ExternalSystemStorageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemStorage!] +} + +type ExternalSystemStorageTransferSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemStorageTransfer!] +} + +type ExternalSystemSupplierSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemSupplier!] +} + +type ExternalSystemSupplierIndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemSupplierIndustryType!] +} + +type ExternalSystemSupplierInvoiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemSupplierInvoice!] +} + +type ExternalSystemSupplierInvoiceLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemSupplierInvoiceLine!] +} + +type ExternalSystemUserRoleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemUserRole!] +} + +type ExternalSystemVATRateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemVATRate!] +} + +type ExternalSystemWageCodeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWageCode!] +} + +type ExternalSystemWageCodeReportCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWageCodeReportCategory!] +} + +type ExternalSystemWageCodeReportCategoryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWageCodeReportCategoryType!] +} + +type ExternalSystemWageGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWageGroup!] +} + +type ExternalSystemWagePeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWagePeriod!] +} + +type ExternalSystemWageRateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWageRate!] +} + +type ExternalSystemWageRateEmployeeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ExternalSystemWageRateEmployee!] +} + +type ImportFileSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ImportFile!] +} + +type IndexRateGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [IndexRateGroup!] +} + +type IndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [IndustryType!] +} + +type IntegratedSystemConfigSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [IntegratedSystemConfig!] +} + +type IntegrationBlackListSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [IntegrationBlackList!] +} + +type IntegrationStatusSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [IntegrationStatus!] +} + +type IntegrationStatus_IncomingSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [IntegrationStatus_Incoming!] +} + +type IntegratorSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Integrator!] +} + +type InvoiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Invoice!] +} + +type InvoiceAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceAttachment!] +} + +type InvoiceLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceLine!] +} + +type InvoiceLine_SessionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceLine_Session!] +} + +type InvoiceLineRuleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceLineRule!] +} + +type InvoiceLineRuleTypeDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceLineRuleTypeDetail!] +} + +type InvoiceTemplateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceTemplate!] +} + +type InvoiceTemplateDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [InvoiceTemplateDetail!] +} + +type JobCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [JobCategory!] +} + +type LedgerAccountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [LedgerAccount!] +} + +type MapDataSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [MapData!] +} + +type MapDataValueSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [MapDataValue!] +} + +type PaymentTermSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [PaymentTerm!] +} + +type PermissionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Permission!] +} + +type ProductSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Product!] +} + +type ProductAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductAgreement!] +} + +type ProductAgreementDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductAgreementDetail!] +} + +type ProductBatchSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductBatch!] +} + +type ProductCampaignSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductCampaign!] +} + +type ProductExtendedInfoSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductExtendedInfo!] +} + +type ProductImportSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductImport!] +} + +type ProductImportFileSetSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductImportFileSet!] +} + +type ProductNoteSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductNote!] +} + +type ProductNoteAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductNoteAttachment!] +} + +type ProductNoteLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductNoteLine!] +} + +type ProductNoteLineBatchSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductNoteLineBatch!] +} + +type ProductSupplierIndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductSupplierIndustryType!] +} + +type ProductSyncSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProductSync!] +} + +type ProjectSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Project!] +} + +type ProjectAccountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectAccount!] +} + +type ProjectAccountCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectAccountCategory!] +} + +type ProjectAccountReportCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectAccountReportCategory!] +} + +type ProjectAccountReportCategoryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectAccountReportCategoryType!] +} + +type ProjectAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectAttachment!] +} + +type ProjectGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectGroup!] +} + +type ProjectPeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectPeriod!] +} + +type ProjectProductAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectProductAgreement!] +} + +type ProjectPurchaseAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectPurchaseAgreement!] +} + +type ProjectReportSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectReport!] +} + +type ProjectReportDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectReportDetail!] +} + +type ProjectTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ProjectType!] +} + +type PurchaseAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [PurchaseAgreement!] +} + +type PurchaseAgreementDiscountGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [PurchaseAgreementDiscountGroup!] +} + +type PurchaseAgreementDiscountProductSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [PurchaseAgreementDiscountProduct!] +} + +type RoleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Role!] +} + +type RolePermissionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [RolePermission!] +} + +type ServiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Service!] +} + +type ServiceAgreementSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ServiceAgreement!] +} + +type ServiceAgreementDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ServiceAgreementDetail!] +} + +type ServiceContractSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [ServiceContract!] +} + +type Settings_AssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Settings_Assignment!] +} + +type Settings_MainSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Settings_Main!] +} + +type Settings_PayrollSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Settings_Payroll!] +} + +type Settings_ProductImportSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Settings_ProductImport!] +} + +type Settings_UserSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Settings_User!] +} + +type StockSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Stock!] +} + +type StockCountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [StockCount!] +} + +type StockCountLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [StockCountLine!] +} + +type StockTransactionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [StockTransaction!] +} + +type StorageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Storage!] +} + +type StorageDepartmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [StorageDepartment!] +} + +type StorageTransferSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [StorageTransfer!] +} + +type SupplierSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Supplier!] +} + +type SupplierIndustryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SupplierIndustryType!] +} + +type SupplierIndustryTypeFtpInfoSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SupplierIndustryTypeFtpInfo!] +} + +type SupplierInvoiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SupplierInvoice!] +} + +type SupplierInvoiceAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SupplierInvoiceAttachment!] +} + +type SupplierInvoiceLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SupplierInvoiceLine!] +} + +type SupplierInvoiceProductMatchSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SupplierInvoiceProductMatch!] +} + +type SystemMessageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SystemMessage!] +} + +type SystemNotificationSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [SystemNotification!] +} + +type TeamSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Team!] +} + +type TeamEmployeeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [TeamEmployee!] +} + +type Temp_SpeedyCraftSyncEventSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Temp_SpeedyCraftSyncEvent!] +} + +type Temp_WebhookMessageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [Temp_WebhookMessage!] +} + +type UserSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [User!] +} + +type UserCommandSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [UserCommand!] +} + +type UserRoleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [UserRole!] +} + +type VATRateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [VATRate!] +} + +type View_AppointmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_Appointment!] +} + +type View_AssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_Assignment!] +} + +type View_AssignmentContactSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_AssignmentContact!] +} + +type View_AssignmentDimensionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_AssignmentDimension!] +} + +type View_AssignmentDimensionValueSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_AssignmentDimensionValue!] +} + +type View_AttachmentWithSyncSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_AttachmentWithSync!] +} + +type View_BoligmappaAttachmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_BoligmappaAttachment!] +} + +type View_ConsumptionStatisticsSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_ConsumptionStatistics!] +} + +type View_CustomerContactSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_CustomerContact!] +} + +type View_CustomerInvoiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_CustomerInvoice!] +} + +type View_DimensionValueWithDimensionLevelSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_DimensionValueWithDimensionLevel!] +} + +type View_EmployeeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_Employee!] +} + +type View_EmployeesForAssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_EmployeesForAssignment!] +} + +type View_IntPricesAndProductSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_IntPricesAndProduct!] +} + +type View_InvoiceLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_InvoiceLine!] +} + +type View_InvoiceLineRuleSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_InvoiceLineRule!] +} + +type View_InvoiceLineRuleTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_InvoiceLineRuleType!] +} + +type View_InvoicesForAssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_InvoicesForAssignment!] +} + +type View_LookupAssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_LookupAssignment!] +} + +type View_MOMSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_MOM!] +} + +type View_ProductNoteLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_ProductNoteLine!] +} + +type View_ProductNoteLinePriceUpdateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_ProductNoteLinePriceUpdate!] +} + +type View_ProductSupplierIndustryTypeWithPriceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_ProductSupplierIndustryTypeWithPrice!] +} + +type View_ProjectAccountsForBudgetSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_ProjectAccountsForBudget!] +} + +type View_ProjectReportDetailSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_ProjectReportDetail!] +} + +type View_ServiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_Service!] +} + +type View_SpeedycraftProductSupplierIndustryTypeWithPriceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_SpeedycraftProductSupplierIndustryTypeWithPrice!] +} + +type View_StockSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_Stock!] +} + +type View_StockCountLine_CountedSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockCountLine_Counted!] +} + +type View_StockCountLine_MyCountingSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockCountLine_MyCounting!] +} + +type View_StockCountLine_NotCountedSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockCountLine_NotCounted!] +} + +type View_StockCountLine_TotalCountSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockCountLine_TotalCount!] +} + +type View_StockTransactionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockTransaction!] +} + +type View_StockTransactionByDateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockTransactionByDate!] +} + +type View_StockTransactionSummarySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_StockTransactionSummary!] +} + +type View_StorageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_Storage!] +} + +type View_SupplierIndustryType_ProductUsageSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_SupplierIndustryType_ProductUsage!] +} + +type View_SupplierIndustryTypeFileSpecSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_SupplierIndustryTypeFileSpec!] +} + +type View_SupplierInvoiceSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_SupplierInvoice!] +} + +type View_SupplierInvoiceLineSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_SupplierInvoiceLine!] +} + +type View_UserSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_User!] +} + +type View_UserPermissionSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_UserPermission!] +} + +type View_WageCodeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_WageCode!] +} + +type View_WageCodeReportCategoryForBudgetSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_WageCodeReportCategoryForBudget!] +} + +type View_WageCodesForAssignmentSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_WageCodesForAssignment!] +} + +type View_WagePeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [View_WagePeriod!] +} + +type WageCodeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WageCode!] +} + +type WageCodeReportCategorySet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WageCodeReportCategory!] +} + +type WageCodeReportCategoryTypeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WageCodeReportCategoryType!] +} + +type WageGroupSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WageGroup!] +} + +type WagePeriodSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WagePeriod!] +} + +type WageRateSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WageRate!] +} + +type WageRateEmployeeSet { + "A count of the total number of objects in this set, ignoring pagination." + totalCount: Int + "The items in the set" + items: [WageRateEmployee!] +} + +type Address { + addressId: Int! + address1: String + address2: String + cadastralUnitNumber: Int + combined_PostalNumber_PostalPlace: String + comment: String + countryId: String + eDokBuildingPlantId: Int + eDokNumber: String + eDokPlantId: Int + eDokProjectId: Int + eDokProjectNumber: String + gLN: String + gPSPositionAccuracy: Decimal + gPSPositionAltitude: Decimal + gPSPositionLatitude: Decimal + gPSPositionLongitude: Decimal + gPSPositionSourceType: Short + leaseholdUnitNumber: Int + municipalityNumber: Int + name: String + name2: String + postalNumber: String + postalPlace: String + propertyUnitNumber: Int + sectionUnitNumber: Int + sectionUnitText: String + shareUnitNumber: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + customerDefault_Addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + customerInvoice_Addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + departments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DepartmentSet + employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet + externalSystemAddresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAddressSet + customer: Customer + employee: Employee + supplier: Supplier + country: Country +} + +type Appointment { + appointmentId: Int! + assignmentId: Int + comment: String + description: String + employeeId: Int! + endDateTimeUTC: DateTime! + startDateTimeUTC: DateTime! + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemAppointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAppointmentSet + assignment: Assignment + employee: Employee +} + +type Assignment { + assignmentId: Int! + addressId: Int + archived: Boolean! + assignmentCategoryId: Int + assignmentCompleteDateTimeUTC: DateTime + assignmentCompleteMobileDevice: Boolean! + assignmentNumber: Int + caseHandler_EmployeeId: Int + contact: String + coverageRateFixedPrice: Decimal + coverageRateNotFixedPrice: Decimal + customerId: Int + customerReference: String + default_ContactId: Int + default_InvoiceTemplateId: Short + default_ProductAgreementId: Short + departmentId: Short + description: String + emailAddress: String + endDateTimeUTC: DateTime + enum_AssignmentProgressId: ID! + enum_AssignmentStatusId: ID! + enum_AssignmentTypeId: ID! + enum_ContractTypeId: ID! + enum_InvoiceReserveBilledPriceCalculationId: ID + enum_InvoiceReserveFixedPriceCalculationId: ID + estimatedCompletionPercentage: Decimal + estimatedTotalHours: Decimal + externalReference: String + fixedPrice: Boolean + fixedPriceAmount: Decimal + fixedPriceInvoiced: Boolean! + groupedInvoicing: Boolean! + internalOnly: Boolean! + internalReference: String + invoiceComment: String + invoiceDimensionUseId: Int + jobResponsible_EmployeeId: Int + jobResponsibleCompleted: Boolean! + jobResponsibleCompletedUTC: DateTime + keyInformation: String + linkedAssignmentId: Int + marginPercent: Decimal + mobile: String + note: String + optimizedAtUTC: DateTime + paymentTermId: Short + phone: String + pieceworkNumber: Int + projectId: Int + readyToInvoice: Boolean + serviceAgreementId: Short + serviceContractId: Int + serviceInvoiceLimitDate: Date + sortDateUTC: DateTime + startDateTimeUTC: DateTime + syncToEconomySystem: Boolean! + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_Tags: String + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + timeSheetAttachmentsNumber: Short + warrantyDate: Date + appointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AppointmentSet + assignmentAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentAttachmentSet + assignmentMOMs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentMOMSet + assignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentParticipantSet + assignmentProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProductAgreementSet + assignmentProjectPeriodInvoiceReserves(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProjectPeriodInvoiceReserveSet + assignmentPurchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentPurchaseAgreementSet + budgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetSet + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet + dimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionUseSet + externalSystemAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentSet + integrationStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatusSet + integrationStatus_Incomings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatus_IncomingSet + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + productNoteAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + productNoteNoteMovedFromAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + productNoteNoteMovedToAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + serviceAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceMovedFromAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceMovedToAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + wageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateEmployeeSet + view_StockTransactions_Assignment(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + contacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactSet + address: Address + assignmentCategory: AssignmentCategory + caseHandler_Employee: Employee + customer: Customer + default_Contact: Contact + default_InvoiceTemplate: InvoiceTemplate + default_ProductAgreement: ProductAgreement + department: Department + enum_AssignmentProgress: Enum_AssignmentProgress + enum_AssignmentStatus: Enum_AssignmentStatus + enum_AssignmentType: Enum_AssignmentType + enum_ContractType: Enum_ContractType + enum_InvoiceReserveBilledPriceCalculation: Enum_InvoiceReserveBilledPriceCalculation + enum_InvoiceReserveFixedPriceCalculation: Enum_InvoiceReserveFixedPriceCalculation + jobResponsible_Employee: Employee + paymentTerm: PaymentTerm + project: Project + serviceAgreement: ServiceAgreement + serviceContract: ServiceContract + view_Assignment: View_Assignment + view_LookupAssignment: View_LookupAssignment +} + +type AssignmentAttachment { + assignmentAttachmentId: Int! + assignmentId: Int! + attachmentId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignment: Assignment + attachment: Attachment +} + +type AssignmentCategory { + assignmentCategoryId: Int! + assignmentCategoryNumber: Int + description: String! + marginPercent: Decimal! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + externalSystemAssignmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentCategorySet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet +} + +type AssignmentMOM { + assignmentMOMId: Int! + assignmentId: Int! + productId: Int! + productNumber: String + selected: Boolean! + selected_UserManual: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignment: Assignment + product: Product +} + +type AssignmentParticipant { + assignmentParticipantId: Int! + assignmentId: Int! + employeeId: Int! + enum_ParticipantStatusId: ID! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemAssignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentParticipantSet + assignment: Assignment + employee: Employee + enum_ParticipantStatus: Enum_ParticipantStatus +} + +type AssignmentProductAgreement { + assignmentProductAgreementId: Int! + assignmentId: Int! + priority: Short! + productAgreementId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignment: Assignment + productAgreement: ProductAgreement +} + +type AssignmentProjectPeriodInvoiceReserve { + assignmentProjectPeriodInvoiceReserveId: Int! + assignmentId: Int! + coverageRateFixedPrice: Decimal + coverageRateNotFixedPrice: Decimal + enum_InvoiceReserveBilledPriceCalculationId: ID + enum_InvoiceReserveFixedPriceCalculationId: ID + invoiceReserveAdjustmentAmount: Decimal! + invoiceReserveAdjustmentComment: String + projectPeriodId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignment: Assignment + enum_InvoiceReserveBilledPriceCalculation: Enum_InvoiceReserveBilledPriceCalculation + enum_InvoiceReserveFixedPriceCalculation: Enum_InvoiceReserveFixedPriceCalculation + projectPeriod: ProjectPeriod +} + +type AssignmentPurchaseAgreement { + assignmentPurchaseAgreementId: Int! + assignmentId: Int! + priority: Short! + purchaseAgreementId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignment: Assignment + purchaseAgreement: PurchaseAgreement +} + +type Attachment { + attachmentId: Int! + attachmentCategoryId: Short + azureBlobId: String + description: String! + enum_IndustryTypeId: ID! + enum_MOM_TypeId: ID + fileChecksum: String + fileName: String! + internal: Boolean! + productId: Int + revisionNumber: Short! + sourceExternalSystemId: Short + sourceType: String + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + uri: String + useCommonBlobStore: Boolean! + assignmentAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentAttachmentSet + boligmappaAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BoligmappaAttachmentSet + customerAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerAttachmentSet + employeeAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeAttachmentSet + externalSystemAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAttachmentSet + invoiceAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceAttachmentSet + productNoteAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteAttachmentSet + projectAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAttachmentSet + supplierInvoiceAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceAttachmentSet + attachmentCategory: AttachmentCategory + enum_IndustryType: Enum_IndustryType + enum_MOM_Type: Enum_MOM_Type + product: Product + sourceExternalSystem: ExternalSystem +} + +type AttachmentCategory { + attachmentCategoryId: Short! + description: String! + enum_AttachmentCategoryId: ID! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentSet + enum_AttachmentCategory: Enum_AttachmentCategory +} + +type BoligmappaAttachment { + boligmappaAttachmentId: Int! + attachmentId: Int! + boligmappaFileId: Int + boligmappaNumber: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + uploadedByBmUserId: String! + uploadedUTC: DateTime + attachment: Attachment +} + +type Budget { + budgetId: Int! + assignmentId: Int + budgetScenarioId: Int! + comment: String + description: String! + fromProjectPeriodId: Int + projectId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + toProjectPeriodId: Int + budgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLineSet + externalSystemBudgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetSet + assignment: Assignment + budgetScenario: BudgetScenario + fromProjectPeriod: ProjectPeriod + project: Project + toProjectPeriod: ProjectPeriod +} + +type BudgetLine { + budgetLineId: Int! + budgetId: Int! + budgetValue: Decimal + comment: String + projectAccountId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageCodeReportCategoryId: Int + budgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLinePeriodSet + externalSystemBudgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLineSet + budget: Budget + projectAccount: ProjectAccount + wageCodeReportCategory: WageCodeReportCategory +} + +type BudgetLinePeriod { + budgetLinePeriodId: Int! + budgetLineId: Int! + budgetValue: Decimal + comment: String + projectPeriodId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemBudgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLinePeriodSet + budgetLine: BudgetLine + projectPeriod: ProjectPeriod +} + +type BudgetScenario { + budgetScenarioId: Int! + comment: String + description: String! + isDefault: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + budgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetSet + externalSystemBudgetScenarios(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetScenarioSet +} + +type Competency { + competencyId: Short! + competencyGroupId: Short! + description: String + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + employee_Competencies(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Employee_CompetencySet + competencyGroup: CompetencyGroup +} + +type CompetencyGroup { + competencyGroupId: Short! + description: String + name: String! + parentCompetencyGroupId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + competencies(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CompetencySet + competencyGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CompetencyGroupSet + parentCompetencyGroup: CompetencyGroup +} + +type ConsumptionStatistics { + consumptionStatisticsId: Int! + appointmentCount: Int! + assignmentCount: Int! + attachmentCount: Int! + date: Date! + productNoteLineCount: Int! + serviceCount: Int! +} + +type Contact { + contactId: Int! + email: String + invoiceSendAttachment: Boolean! + invoiceSendCopy: Boolean! + mobile: String + name: String + name2: String + parentContactId: Int + phone: String + preferred_Enum_MessageChannelId: ID! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + title: String + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + externalSystemContacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemContactSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + assignment: Assignment + customer: Customer + preferred_Enum_MessageChannel: Enum_MessageChannel + view_AssignmentContact: View_AssignmentContact + view_CustomerContact: View_CustomerContact +} + +type ContactMessage { + contactMessageId: Int! + assignmentId: Int + comment: String + contactId: Int + customerId: Int + enum_MessageChannelId: ID! + enum_MessageDeliveryStatusId: ID! + externalMessageId: String + inboundReadByUserUTC: DateTime + inboundReceivedUTC: DateTime + isInbound: Boolean! + messageGroup: String + messageText: String! + mobile: String + outboundDeliveredUTC: DateTime + outboundReadByContactUTC: DateTime + outboundSendWaitUntilUTC: DateTime + outboundSentUTC: DateTime + segmentCount: Short + sendTryCount: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + userId: Int + assignment: Assignment + contact: Contact + customer: Customer + enum_MessageChannel: Enum_MessageChannel + enum_MessageDeliveryStatus: Enum_MessageDeliveryStatus + user: User +} + +type Country { + countryId: String! + name: String! + phonePrefix: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AddressSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + products(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + suppliers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierSet +} + +type Customer { + customerId: Int! + bankAccountNumber: String + combined_CustomerNumber_Name_Name2: String + combined_Name_Name2: String + comment: String + countryId: String + creditLimit: Int + customerNumber: Int + default_AddressId: Int + default_AssignmentCategoryId: Int + default_ContactId: Int + default_InvoiceTemplateId: Short + default_ProductAgreementId: Short + email: String + enum_DebtCollectionStatusId: ID! + fax: String + inactive: Boolean! + internal: Boolean! + invoice_AddressId: Int + invoice_CustomerId: Int + invoiceConsolidate: Boolean! + invoiceElectronic: Boolean! + invoiceElectronicEmail: String + invoiceElectronicTarget: String + invoiceReminder: Boolean! + invoiceVAT: Boolean! + mobile: String + mobile2: String + name: String + name2: String + organizationNumber: String + paymentTermId: Short + phone: String + private: Boolean! + serviceAgreementId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + timeSheetAttachmentsNumber: Short + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + customerAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerAttachmentSet + customerProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerProductAgreementSet + externalSystemCustomers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemCustomerSet + invoiceCustomers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + invoiceDebtorCustomers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + view_StockTransactions_Customer(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AddressSet + contacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactSet + country: Country + default_Address: Address + default_AssignmentCategory: AssignmentCategory + default_Contact: Contact + default_InvoiceTemplate: InvoiceTemplate + default_ProductAgreement: ProductAgreement + enum_DebtCollectionStatus: Enum_DebtCollectionStatus + invoice_Address: Address + invoice_Customer: Customer + paymentTerm: PaymentTerm + serviceAgreement: ServiceAgreement +} + +type CustomerAttachment { + customerAttachmentId: Int! + attachmentId: Int! + customerId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + customer: Customer +} + +type CustomerProductAgreement { + customerProductAgreementId: Short! + customerId: Int! + priority: Int! + productAgreementId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + customer: Customer + productAgreement: ProductAgreement +} + +type Department { + departmentId: Short! + addressId: Int + departmentNumber: Short + description: String! + inactive: Boolean! + marginMinPercent: Decimal + productAgreementId: Short + serviceAgreementId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet + externalSystemDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDepartmentSet + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + storageDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageDepartmentSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + address: Address + productAgreement: ProductAgreement + serviceAgreement: ServiceAgreement +} + +type Dimension { + dimensionId: Int! + code: String + enum_DimensionLevelId: ID! + isInvoiceable: Boolean! + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + useOnProductNoteLine: Boolean! + useOnService: Boolean! + dimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionUseSet + dimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionValueSet + externalSystemDimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + enum_DimensionLevel: Enum_DimensionLevel +} + +type DimensionUse { + dimensionUseId: Int! + assignmentId: Int + dimensionId: Int! + dimensionIndex: Short + invoice: Boolean! + projectId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + dimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionValueUseSet + externalSystemDimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionUseSet + assignment: Assignment + dimension: Dimension + project: Project +} + +type DimensionValue { + dimensionValueId: Int! + code: String + dimensionId: Int + hierarchicalId: String + name: String! + parentDimensionValueId: Int + selectable: Boolean! + sortOrder: Int + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + dimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionValueSet + dimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionValueUseSet + externalSystemDimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueSet + invoiceLineDimensionValues_1(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineDimensionValues_2(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineDimensionValues_3(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineDimensionValues_4(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineDimensionValues_5(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineDimensionValues_6(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineInvoicingDimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productNoteLineDimensionValues_1(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineDimensionValues_2(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineDimensionValues_3(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineDimensionValues_4(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineDimensionValues_5(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineDimensionValues_6(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + serviceDimensionValues_1(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceDimensionValues_2(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceDimensionValues_3(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceDimensionValues_4(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceDimensionValues_5(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceDimensionValues_6(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + dimension: Dimension + parentDimensionValue: DimensionValue +} + +type DimensionValueUse { + dimensionValueUseId: Int! + completed: Boolean! + dimensionUseId: Int! + dimensionValueId: Int! + endDateTimeUTC: DateTime + fixedPrice: Decimal + fixedPriceInvoiced: Boolean! + invoiceText: String + startDateTimeUTC: DateTime + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemDimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueUseSet + dimensionUse: DimensionUse + dimensionValue: DimensionValue +} + +type DiscountGroup { + discountGroupId: Int! + discountGroupCode: String + supplierIndustryTypeId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSupplierIndustryTypeSet + purchaseAgreementDiscountGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementDiscountGroupSet + supplierIndustryType: SupplierIndustryType +} + +type Employee { + employeeId: Int! + approveWageRequired: Boolean! + dateOfBirth: Date + default_AddressId: Int + departmentId: Short + emailPrivate: String + emailWork: String + employeeInvoiceCategoryId: Short + employeeNumber: Int + endDate: Date + enum_EmployeeStatusId: ID! + firstName: String! + fullName: String + hasMobileDevice: Boolean! + hoursPerWeek: Decimal! + imageUrl: String + isCaseHandler: Boolean! + isHired: Boolean! + jobCategoryEndDate: Date + jobCategoryId: Short + jobCategoryStartDate: Date + jobPercent: Decimal + lastName: String! + note: String + phoneMobile: String + phonePrivate: String + phoneWork: String + startDate: Date + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + appointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AppointmentSet + assignmentCaseHandler_Employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + assignmentJobResponsible_Employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + assignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentParticipantSet + employee_Competencies(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Employee_CompetencySet + employeeAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeAttachmentSet + externalSystemEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeSet + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + serviceEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceInvoice_ApprovalEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceWage_ApprovalEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet + stockCountApprovedBy_Employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountSet + stockCountResponsible_Employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountSet + stockCountLineApprovedBy_Employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + stockCountLineEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + storages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageSet + teamEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): TeamEmployeeSet + users(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserSet + wageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateEmployeeSet + view_StockCountLine_Counteds_Employee(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockCountLine_CountedSet + view_StockTransactions_RegisteredBy_Employee(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + view_Storages_ResponsibleEmployee(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StorageSet + addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AddressSet + default_Address: Address + department: Department + employeeInvoiceCategory: EmployeeInvoiceCategory + enum_EmployeeStatus: Enum_EmployeeStatus + jobCategory: JobCategory + view_Employee: View_Employee +} + +type Employee_Competency { + employee_CompetencyId: Short! + competencyId: Short! + employeeId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + competency: Competency + employee: Employee +} + +type EmployeeAttachment { + employeeAttachmentId: Int! + attachmentId: Int! + employeeId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + employee: Employee +} + +type EmployeeInvoiceCategory { + employeeInvoiceCategoryId: Short! + combined_Number_Name: String + name: String! + number: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet + externalSystemEmployeeInvoiceCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeInvoiceCategorySet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceAgreementDetailSet +} + +type Enum_ApprovalStatus { + enum_ApprovalStatusId: ID! + textId: String! + serviceInvoice_Enum_ApprovalStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceWage_Enum_ApprovalStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet +} + +type Enum_AssignmentProgress { + enum_AssignmentProgressId: ID! + textId: String! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet +} + +type Enum_AssignmentStatus { + enum_AssignmentStatusId: ID! + textId: String! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet +} + +type Enum_AssignmentType { + enum_AssignmentTypeId: ID! + textId: String! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet +} + +type Enum_AttachmentCategory { + enum_AttachmentCategoryId: ID! + textId: String! + attachmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentCategorySet +} + +type Enum_BoligmappaIndustryType { + enum_BoligmappaIndustryTypeId: ID! + textId: String! + industryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IndustryTypeSet +} + +type Enum_ClientLevel { + enum_ClientLevelId: ID! + textId: String! + roleAdminFor_Enum_ClientLevels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): RoleSet + roleEnum_ClientLevels(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): RoleSet +} + +type Enum_Command { + enum_CommandId: ID! + textId: String! + userCommands(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserCommandSet +} + +type Enum_ContractType { + enum_ContractTypeId: ID! + textId: String! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet +} + +type Enum_CostPriceSource { + enum_CostPriceSourceId: ID! + textId: String! + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet +} + +type Enum_DebtCollectionStatus { + enum_DebtCollectionStatusId: ID! + textId: String! + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet +} + +type Enum_DimensionLevel { + enum_DimensionLevelId: ID! + textId: String! + dimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionSet +} + +type Enum_DocumentOrigin { + enum_DocumentOriginId: ID! + textId: String! +} + +type Enum_EmployeeStatus { + enum_EmployeeStatusId: ID! + textId: String! + employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet +} + +type Enum_FileDownloadMode { + enum_FileDownloadModeId: ID! + textId: String! + productImports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductImportSet + supplierIndustryTypeFtpInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeFtpInfoSet +} + +type Enum_ImportFormat { + enum_ImportFormatId: ID! + textId: String! + importFiles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ImportFileSet + supplierIndustryTypeFtpInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeFtpInfoSet +} + +type Enum_ImportFrequency { + enum_ImportFrequencyId: ID! + textId: String! + productImportFileSets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductImportFileSetSet +} + +type Enum_ImportStatus { + enum_ImportStatusId: ID! + textId: String! + importFiles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ImportFileSet +} + +type Enum_ImportType { + enum_ImportTypeId: ID! + textId: String! + importFiles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ImportFileSet + supplierIndustryTypeFtpInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeFtpInfoSet +} + +type Enum_IndustryType { + enum_IndustryTypeId: ID! + textId: String! + attachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentSet + industryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IndustryTypeSet +} + +type Enum_IntegratedSystemType { + enum_IntegratedSystemTypeId: ID! + textId: String! + integratedSystemConfigs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegratedSystemConfigSet +} + +type Enum_InvoiceLineRuleType { + enum_InvoiceLineRuleTypeId: ID! + textId: String! + invoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + invoiceLineRuleTypeDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleTypeDetailSet +} + +type Enum_InvoiceLineRuleTypeDetail { + enum_InvoiceLineRuleTypeDetailId: ID! + textId: String! + invoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + invoiceLineRuleTypeDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleTypeDetailSet +} + +type Enum_InvoiceLineType { + enum_InvoiceLineTypeId: ID! + textId: String! + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet +} + +type Enum_InvoiceReserveBilledPriceCalculation { + enum_InvoiceReserveBilledPriceCalculationId: ID! + textId: String! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + assignmentProjectPeriodInvoiceReserves(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProjectPeriodInvoiceReserveSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet +} + +type Enum_InvoiceReserveFixedPriceCalculation { + enum_InvoiceReserveFixedPriceCalculationId: ID! + textId: String! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + assignmentProjectPeriodInvoiceReserves(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProjectPeriodInvoiceReserveSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet +} + +type Enum_InvoiceStatus { + enum_InvoiceStatusId: ID! + textId: String! + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet +} + +type Enum_InvoicingLineStatus { + enum_InvoicingLineStatusId: ID! + textId: String! + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet +} + +type Enum_LogLevel { + enum_LogLevelId: ID! + textId: String! +} + +type Enum_MessageChannel { + enum_MessageChannelId: ID! + textId: String! + contacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactSet + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet +} + +type Enum_MessageDeliveryStatus { + enum_MessageDeliveryStatusId: ID! + textId: String! + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet +} + +type Enum_MOM_Type { + enum_MOM_TypeId: ID! + textId: String! + attachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentSet +} + +type Enum_NotificationType { + enum_NotificationTypeId: ID! + textId: String! + systemNotifications(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SystemNotificationSet +} + +type Enum_OriginType { + enum_OriginTypeId: ID! + textId: String! + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet +} + +type Enum_ParticipantStatus { + enum_ParticipantStatusId: ID! + textId: String! + assignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentParticipantSet +} + +type Enum_PayrollFormat { + enum_PayrollFormatId: ID! + textId: String! + settings_Payrolls(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_PayrollSet +} + +type Enum_PieceworkType { + enum_PieceworkTypeId: ID! + textId: String! + wageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet +} + +type Enum_ProductAgreementDetail_PriceType { + enum_ProductAgreementDetail_PriceTypeId: ID! + textId: String! + productAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductAgreementDetailSet +} + +type Enum_ProjectAccountCategoryType { + enum_ProjectAccountCategoryTypeId: ID! + textId: String! + projectAccountCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountCategorySet +} + +type Enum_ProjectAssessmentType { + enum_ProjectAssessmentTypeId: ID! + textId: String! + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet +} + +type Enum_ProjectReportDetailType { + enum_ProjectReportDetailTypeId: ID! + textId: String! + projectReportDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectReportDetailSet +} + +type Enum_ProjectStatus { + enum_ProjectStatusId: ID! + textId: String! + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet +} + +type Enum_RowState { + enum_RowStateId: ID! + textId: String! + integrationStatusEnum_RowStates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatusSet + integrationStatusNext_Enum_RowStates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatusSet + integrationStatus_Incomings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatus_IncomingSet + systemMessageEnum_RowStates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SystemMessageSet + systemMessageNext_Enum_RowStates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SystemMessageSet +} + +type Enum_ServiceAgreementDetailValueType { + enum_ServiceAgreementDetailValueTypeId: ID! + textId: String! + serviceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceAgreementDetailSet +} + +type Enum_ServiceContractRecurrenceHandling { + enum_ServiceContractRecurrenceHandlingId: ID! + textId: String! + serviceContracts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceContractSet +} + +type Enum_StockTransactionOrigin { + enum_StockTransactionOriginId: ID! + textId: String! + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + view_StockTransactions_Enum_StockTransactionOrigin(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet +} + +type Enum_StorageMode { + enum_StorageModeId: ID! + textId: String! + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet +} + +type Enum_SupplierInvoiceStatus { + enum_SupplierInvoiceStatusId: ID! + textId: String! + supplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceSet +} + +type Enum_SyncStatus { + enum_SyncStatusId: ID! + textId: String! + externalSystemAddresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAddressSet + externalSystemAppointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAppointmentSet + externalSystemAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentSet + externalSystemAssignmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentCategorySet + externalSystemAssignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentParticipantSet + externalSystemAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAttachmentSet + externalSystemBudgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetSet + externalSystemBudgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLineSet + externalSystemBudgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLinePeriodSet + externalSystemBudgetScenarios(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetScenarioSet + externalSystemContacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemContactSet + externalSystemCustomers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemCustomerSet + externalSystemDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDepartmentSet + externalSystemDimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionSet + externalSystemDimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionUseSet + externalSystemDimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueSet + externalSystemDimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueUseSet + externalSystemEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeSet + externalSystemEmployeeInvoiceCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeInvoiceCategorySet + externalSystemIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemIndustryTypeSet + externalSystemInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceSet + externalSystemInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineSet + externalSystemInvoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineRuleSet + externalSystemInvoiceTemplates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateSet + externalSystemInvoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateDetailSet + externalSystemJobCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemJobCategorySet + externalSystemLedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemLedgerAccountSet + externalSystemPaymentTerms(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPaymentTermSet + externalSystemPermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPermissionSet + externalSystemProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSet + externalSystemProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementSet + externalSystemProductAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementDetailSet + externalSystemProductNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteSet + externalSystemProductNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteLineSet + externalSystemProductSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSupplierIndustryTypeSet + externalSystemProjects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectSet + externalSystemProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectAccountSet + externalSystemProjectGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectGroupSet + externalSystemProjectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectPeriodSet + externalSystemProjectTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectTypeSet + externalSystemRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRoleSet + externalSystemRolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRolePermissionSet + externalSystemServices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceSet + externalSystemServiceAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementSet + externalSystemServiceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementDetailSet + externalSystemStocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockSet + externalSystemStockCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountSet + externalSystemStockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountLineSet + externalSystemStockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockTransactionSet + externalSystemStorages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageSet + externalSystemStorageTransfers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageTransferSet + externalSystemSuppliers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierSet + externalSystemSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierIndustryTypeSet + externalSystemSupplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceSet + externalSystemSupplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceLineSet + externalSystemUserRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemUserRoleSet + externalSystemVATRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemVATRateSet + externalSystemWageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeSet + externalSystemWageCodeReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategorySet + externalSystemWageCodeReportCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategoryTypeSet + externalSystemWageGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageGroupSet + externalSystemWagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWagePeriodSet + externalSystemWageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateSet + externalSystemWageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateEmployeeSet + productSyncs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSyncSet +} + +type Enum_SystemMessageSource { + enum_SystemMessageSourceId: ID! + textId: String! + systemMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SystemMessageSet +} + +type Enum_TimeZone { + enum_TimeZoneId: ID! + textId: String! + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet +} + +type Enum_WageCodeInvoiceRule { + enum_WageCodeInvoiceRuleId: ID! + textId: String! + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + wageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet +} + +type Enum_WageCodeType { + enum_WageCodeTypeId: ID! + textId: String! + wageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet +} + +type Enum_WagePeriodStatus { + enum_WagePeriodStatusId: ID! + textId: String! + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + wagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WagePeriodSet +} + +type ExternalSystem { + externalSystemId: Short! + integrationConfig: String + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentSet + externalSystemAddresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAddressSet + externalSystemAppointments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAppointmentSet + externalSystemAssignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentSet + externalSystemAssignmentCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentCategorySet + externalSystemAssignmentParticipants(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAssignmentParticipantSet + externalSystemAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemAttachmentSet + externalSystemBudgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetSet + externalSystemBudgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLineSet + externalSystemBudgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetLinePeriodSet + externalSystemBudgetScenarios(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemBudgetScenarioSet + externalSystemContacts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemContactSet + externalSystemCustomers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemCustomerSet + externalSystemDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDepartmentSet + externalSystemDimensions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionSet + externalSystemDimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionUseSet + externalSystemDimensionValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueSet + externalSystemDimensionValueUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueUseSet + externalSystemEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeSet + externalSystemEmployeeInvoiceCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemEmployeeInvoiceCategorySet + externalSystemExtraDatas(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemExtraDataSet + externalSystemIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemIndustryTypeSet + externalSystemInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceSet + externalSystemInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineSet + externalSystemInvoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineRuleSet + externalSystemInvoiceTemplates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateSet + externalSystemInvoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateDetailSet + externalSystemJobCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemJobCategorySet + externalSystemLedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemLedgerAccountSet + externalSystemPaymentTerms(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPaymentTermSet + externalSystemPermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPermissionSet + externalSystemProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSet + externalSystemProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementSet + externalSystemProductAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementDetailSet + externalSystemProductNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteSet + externalSystemProductNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteLineSet + externalSystemProductSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSupplierIndustryTypeSet + externalSystemProjects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectSet + externalSystemProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectAccountSet + externalSystemProjectGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectGroupSet + externalSystemProjectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectPeriodSet + externalSystemProjectTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectTypeSet + externalSystemRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRoleSet + externalSystemRolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRolePermissionSet + externalSystemServices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceSet + externalSystemServiceAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementSet + externalSystemServiceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementDetailSet + externalSystemStocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockSet + externalSystemStockCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountSet + externalSystemStockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountLineSet + externalSystemStockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockTransactionSet + externalSystemStorages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageSet + externalSystemStorageTransfers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageTransferSet + externalSystemSuppliers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierSet + externalSystemSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierIndustryTypeSet + externalSystemSupplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceSet + externalSystemSupplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceLineSet + externalSystemUserRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemUserRoleSet + externalSystemVATRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemVATRateSet + externalSystemWageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeSet + externalSystemWageCodeReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategorySet + externalSystemWageCodeReportCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategoryTypeSet + externalSystemWageGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageGroupSet + externalSystemWagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWagePeriodSet + externalSystemWageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateSet + externalSystemWageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateEmployeeSet + integrationStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatusSet + integrationStatus_Incomings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatus_IncomingSet + mapDataValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): MapDataValueSet + productSyncs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSyncSet +} + +type ExternalSystemAddress { + externalSystemAddressId: Int! + addressId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + address: Address + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemAppointment { + externalSystemAppointmentId: Int! + appointmentId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + appointment: Appointment + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemAssignment { + externalSystemAssignmentId: Int! + assignmentId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignment: Assignment + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemAssignmentCategory { + externalSystemAssignmentCategoryId: Int! + assignmentCategoryId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignmentCategory: AssignmentCategory + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemAssignmentParticipant { + externalSystemAssignmentParticipantId: Int! + assignmentParticipantId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignmentParticipant: AssignmentParticipant + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemAttachment { + externalSystemAttachmentId: Int! + attachmentId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemBudget { + externalSystemBudgetId: Int! + budgetId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + budget: Budget + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemBudgetLine { + externalSystemBudgetLineId: Int! + budgetLineId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + budgetLine: BudgetLine + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemBudgetLinePeriod { + externalSystemBudgetLinePeriodId: Int! + budgetLinePeriodId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + budgetLinePeriod: BudgetLinePeriod + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemBudgetScenario { + externalSystemBudgetScenarioId: Int! + budgetScenarioId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + budgetScenario: BudgetScenario + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemContact { + externalSystemContactId: Int! + contactId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + contact: Contact + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemCustomer { + externalSystemCustomerId: Int! + customerId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + customer: Customer + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemDepartment { + externalSystemDepartmentId: Short! + departmentId: Short + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + department: Department + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemDimension { + externalSystemDimensionId: Int! + dimensionId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + dimension: Dimension + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemDimensionUse { + externalSystemDimensionUseId: Int! + dimensionUseId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + dimensionUse: DimensionUse + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemDimensionValue { + externalSystemDimensionValueId: Int! + dimensionValueId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + dimensionValue: DimensionValue + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + view_AssignmentDimensionValue: View_AssignmentDimensionValue +} + +type ExternalSystemDimensionValueUse { + externalSystemDimensionValueUseId: Int! + dimensionValueUseId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + dimensionValueUse: DimensionValueUse + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemEmployee { + externalSystemEmployeeId: Int! + employeeId: Int + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + employee: Employee + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemEmployeeInvoiceCategory { + externalSystemEmployeeInvoiceCategoryId: Short! + employeeInvoiceCategoryId: Short + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + employeeInvoiceCategory: EmployeeInvoiceCategory + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem +} + +type ExternalSystemExtraData { + externalSystemExtraDataId: Int! + externalSystemId: Short! + key: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + value: String + externalSystem: ExternalSystem +} + +type ExternalSystemIndustryType { + externalSystemIndustryTypeId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + industryTypeId: Short + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + industryType: IndustryType +} + +type ExternalSystemInvoice { + externalSystemInvoiceId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + invoiceId: Int + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + invoice: Invoice +} + +type ExternalSystemInvoiceLine { + externalSystemInvoiceLineId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + invoiceLineId: Int + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + invoiceLine: InvoiceLine +} + +type ExternalSystemInvoiceLineRule { + externalSystemInvoiceLineRuleId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + invoiceLineRuleId: Short + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + invoiceLineRule: InvoiceLineRule +} + +type ExternalSystemInvoiceTemplate { + externalSystemInvoiceTemplateId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + invoiceTemplateId: Short + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + invoiceTemplate: InvoiceTemplate +} + +type ExternalSystemInvoiceTemplateDetail { + externalSystemInvoiceTemplateDetailId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + invoiceTemplateDetailId: Short + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + invoiceTemplateDetail: InvoiceTemplateDetail +} + +type ExternalSystemJobCategory { + externalSystemJobCategoryId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + jobCategoryId: Short + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + jobCategory: JobCategory +} + +type ExternalSystemLedgerAccount { + externalSystemLedgerAccountId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + ledgerAccountId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + ledgerAccount: LedgerAccount +} + +type ExternalSystemPaymentTerm { + externalSystemPaymentTermId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + paymentTermId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + paymentTerm: PaymentTerm +} + +type ExternalSystemPermission { + externalSystemPermissionId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + permissionId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + permission: Permission +} + +type ExternalSystemProduct { + externalSystemProductId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + productId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + product: Product +} + +type ExternalSystemProductAgreement { + externalSystemProductAgreementId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + productAgreementId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + productAgreement: ProductAgreement +} + +type ExternalSystemProductAgreementDetail { + externalSystemProductAgreementDetailId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + productAgreementDetailId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + productAgreementDetail: ProductAgreementDetail +} + +type ExternalSystemProductNote { + externalSystemProductNoteId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + productNoteId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + productNote: ProductNote +} + +type ExternalSystemProductNoteLine { + externalSystemProductNoteLineId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + productNoteLineId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + productNoteLine: ProductNoteLine +} + +type ExternalSystemProductSupplierIndustryType { + externalSystemProductSupplierIndustryTypeId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + productSupplierIndustryTypeId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + productSupplierIndustryType: ProductSupplierIndustryType +} + +type ExternalSystemProject { + externalSystemProjectId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + projectId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + project: Project +} + +type ExternalSystemProjectAccount { + externalSystemProjectAccountId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + projectAccountId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + projectAccount: ProjectAccount +} + +type ExternalSystemProjectGroup { + externalSystemProjectGroupId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + projectGroupId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + projectGroup: ProjectGroup +} + +type ExternalSystemProjectPeriod { + externalSystemProjectPeriodId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + projectPeriodId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + projectPeriod: ProjectPeriod +} + +type ExternalSystemProjectType { + externalSystemProjectTypeId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + projectTypeId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + projectType: ProjectType +} + +type ExternalSystemRole { + externalSystemRoleId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + roleId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + role: Role +} + +type ExternalSystemRolePermission { + externalSystemRolePermissionId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + rolePermissionId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + rolePermission: RolePermission +} + +type ExternalSystemService { + externalSystemServiceId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + serviceId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + service: Service +} + +type ExternalSystemServiceAgreement { + externalSystemServiceAgreementId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + serviceAgreementId: Short + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + serviceAgreement: ServiceAgreement +} + +type ExternalSystemServiceAgreementDetail { + externalSystemServiceAgreementDetailId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + serviceAgreementDetailId: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + serviceAgreementDetail: ServiceAgreementDetail +} + +type ExternalSystemStock { + externalSystemStockId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + stockId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + stock: Stock +} + +type ExternalSystemStockCount { + externalSystemStockCountId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + stockCountId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + stockCount: StockCount +} + +type ExternalSystemStockCountLine { + externalSystemStockCountLineId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + stockCountLineId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + stockCountLine: StockCountLine +} + +type ExternalSystemStockTransaction { + externalSystemStockTransactionId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + stockTransactionId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + stockTransaction: StockTransaction +} + +type ExternalSystemStorage { + externalSystemStorageId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + storageId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + storage: Storage +} + +type ExternalSystemStorageTransfer { + externalSystemStorageTransferId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + storageTransferId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + storageTransfer: StorageTransfer +} + +type ExternalSystemSupplier { + externalSystemSupplierId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + supplierId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + supplier: Supplier +} + +type ExternalSystemSupplierIndustryType { + externalSystemSupplierIndustryTypeId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + supplierIndustryTypeId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + supplierIndustryType: SupplierIndustryType +} + +type ExternalSystemSupplierInvoice { + externalSystemSupplierInvoiceId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + supplierInvoiceId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + supplierInvoice: SupplierInvoice +} + +type ExternalSystemSupplierInvoiceLine { + externalSystemSupplierInvoiceLineId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + supplierInvoiceLineId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + supplierInvoiceLine: SupplierInvoiceLine +} + +type ExternalSystemUserRole { + externalSystemUserRoleId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + userRoleId: Int + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + userRole: UserRole +} + +type ExternalSystemVATRate { + externalSystemVATRateId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + vATRateId: Short + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + vATRate: VATRate +} + +type ExternalSystemWageCode { + externalSystemWageCodeId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageCodeId: Short + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wageCode: WageCode +} + +type ExternalSystemWageCodeReportCategory { + externalSystemWageCodeReportCategoryId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageCodeReportCategoryId: Int + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wageCodeReportCategory: WageCodeReportCategory +} + +type ExternalSystemWageCodeReportCategoryType { + externalSystemWageCodeReportCategoryTypeId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageCodeReportCategoryTypeId: Short + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wageCodeReportCategoryType: WageCodeReportCategoryType +} + +type ExternalSystemWageGroup { + externalSystemWageGroupId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageGroupId: Short + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wageGroup: WageGroup +} + +type ExternalSystemWagePeriod { + externalSystemWagePeriodId: Int! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wagePeriodId: Int + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wagePeriod: WagePeriod +} + +type ExternalSystemWageRate { + externalSystemWageRateId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageRateId: Short + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wageRate: WageRate +} + +type ExternalSystemWageRateEmployee { + externalSystemWageRateEmployeeId: Short! + enum_SyncStatusId: ID! + externalId: String + externalSystemId: Short! + lastTransferMilliseconds: Int + statusDescription: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageRateEmployeeId: Short + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + wageRateEmployee: WageRateEmployee +} + +type ImportFile { + importFileId: Short! + autoImport: Boolean! + azureBlobIdExt: String + downloadedDateTimeUTC: DateTime + enum_ImportFormatId: ID! + enum_ImportStatusId: ID! + enum_ImportTypeId: ID! + importedDateTimeUTC: DateTime + importMessage: String + localHashCode: String + remainingDownloadTryCount: Short! + remainingImportTryCount: Short! + sourceAutoDeleteAfterImport: Boolean! + sourceDeletedDateTimeUTC: DateTime + sourceFileName: String + sourceFileSize: Long + sourceHashCode: String + sourceLastUpdatedUTC: DateTime + supplierIndustryTypeFtpInfoId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_ImportFormat: Enum_ImportFormat + enum_ImportStatus: Enum_ImportStatus + enum_ImportType: Enum_ImportType + supplierIndustryTypeFtpInfo: SupplierIndustryTypeFtpInfo +} + +type IndexRateGroup { + indexRateGroupId: Short! + description: String! + indexRate: Decimal + number: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + serviceContracts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceContractSet +} + +type IndustryType { + industryTypeId: Short! + description: String! + enum_BoligmappaIndustryTypeId: ID! + enum_IndustryTypeId: ID! + industryTypeNumber: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemIndustryTypeSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + products(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductAgreementSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + supplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeSet + supplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceSet + supplierInvoiceProductMatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceProductMatchSet + enum_BoligmappaIndustryType: Enum_BoligmappaIndustryType + enum_IndustryType: Enum_IndustryType +} + +type IntegratedSystemConfig { + integratedSystemConfigId: Short! + enum_IntegratedSystemTypeId: ID! + key: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + value: String + enum_IntegratedSystemType: Enum_IntegratedSystemType +} + +type IntegrationBlackList { + integrationBlackListId: Int! + entityId: Long! + expiresUTC: DateTime + message: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + tableName: String! +} + +type IntegrationStatus { + integrationStatusId: Int! + assignmentId: Int + attemptCount: Int! + attemptsLeft: Short! + enum_RowStateId: ID + externalEditURL: String + externalId: String + externalIdText: String + externalSystemId: Short + externalTraceId: String + fieldName: String + groupId: String + integratorId: Short + internalEditURL: String + internalIdText: String + operation: String! + rawMessage: String + retryRequested: Boolean! + rowId: Long + rowId2: Long + showByDefault: Boolean + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + tableName: String + technicalMessage: String + textId: String + traceId: String + userComment: String + userOk: Boolean! + assignment: Assignment + enum_RowState: Enum_RowState + externalSystem: ExternalSystem + integrator: Integrator +} + +type IntegrationStatus_Incoming { + integrationStatus_IncomingId: Int! + assignmentId: Int + externalEditURL: String + externalId: String + externalIdText: String + externalSystemId: Short + externalTraceId: String + fieldName: String + groupId: String + integratorId: Short + internalEditURL: String + internalIdText: String + next_Enum_RowStateId: ID + operation: String! + rawMessage: String + rowId: Long + rowId2: Long + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + tableName: String + technicalMessage: String + textId: String + traceId: String + assignment: Assignment + externalSystem: ExternalSystem + integrator: Integrator + next_Enum_RowState: Enum_RowState +} + +type Integrator { + integratorId: Short! + integratorIdText: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + integrationStatuses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatusSet + integrationStatus_Incomings(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): IntegrationStatus_IncomingSet +} + +type Invoice { + invoiceId: Int! + assignmentId: Int + attachServiceListAsPDF: Boolean! + customerId: Int! + debtorCustomerId: Int + departmentId: Short + dueDate: Date + enum_InvoiceStatusId: ID! + grossAmount: Decimal + invoiceComment: String + invoiceDate: Date + invoicedUTC: DateTime + invoiceNumber: Int + isCreditNote: Boolean! + isFinalInvoice: Boolean! + netAmount: Decimal + parentInvoiceId: Int + paymentTermId: Short + projectId: Int + registeredUTC: DateTime + remainingAmount: Decimal + sentUTC: DateTime + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + transferredUTC: DateTime + vATFree: Boolean! + externalSystemInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceSet + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + invoiceAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceAttachmentSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + assignment: Assignment + customer: Customer + debtorCustomer: Customer + department: Department + enum_InvoiceStatus: Enum_InvoiceStatus + parentInvoice: Invoice + paymentTerm: PaymentTerm + project: Project +} + +type InvoiceAttachment { + invoiceAttachmentId: Int! + attachmentId: Int! + invoiceId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + invoice: Invoice +} + +type InvoiceLine { + invoiceLineId: Int! + basisSumPercentInvoice: Decimal + cost_LedgerAccountId: Short + cost_ProjectAccountId: Int + costPrice: Decimal + departmentId: Short + dimensionValueId_1: Int + dimensionValueId_2: Int + dimensionValueId_3: Int + dimensionValueId_4: Int + dimensionValueId_5: Int + dimensionValueId_6: Int + enum_InvoiceLineTypeId: ID! + income_LedgerAccountId: Short + income_ProjectAccountId: Int + industryTypeId: Short + invoiceId: Int + invoiceLineCode: String + invoiceLineRuleId: Short + invoiceLineText: String! + invoicingDimensionValueId: Int + isFixedPrice: Boolean! + isVarious: Boolean! + listPrice: Decimal + priceOnly: Boolean! + productAgreementId: Short + productSupplierIndustryTypeId: Int + projectPeriodId: Int + quantityInvoice: Decimal + registeredDateTimeUTC: DateTime + salesPrice: Decimal + salesPriceInvoice: Decimal + serviceAgreementDetailId: Int + sortOrder: Int! + sourceProductNoteLineIds: String + sourceServiceIds: String + storageId: Short + surchargePercentInvoice: Decimal + sys_AssignmentId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Enum_InvoiceLineRuleTypeDetailId: ID + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_InvoiceNumber: Int + sys_ProjectAccountCategoryId: Short + sys_ProjectPeriod: Int + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + updateAssignmentCost: Boolean! + updateStock: Boolean! + vATFree: Boolean! + vATRateId: Short + wageCodeReportCategoryId: Int + externalSystemInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + cost_LedgerAccount: LedgerAccount + cost_ProjectAccount: ProjectAccount + department: Department + dimensionValue_1: DimensionValue + dimensionValue_2: DimensionValue + dimensionValue_3: DimensionValue + dimensionValue_4: DimensionValue + dimensionValue_5: DimensionValue + dimensionValue_6: DimensionValue + enum_InvoiceLineType: Enum_InvoiceLineType + income_LedgerAccount: LedgerAccount + income_ProjectAccount: ProjectAccount + industryType: IndustryType + invoice: Invoice + invoiceLineRule: InvoiceLineRule + invoicingDimensionValue: DimensionValue + productAgreement: ProductAgreement + productSupplierIndustryType: ProductSupplierIndustryType + projectPeriod: ProjectPeriod + serviceAgreementDetail: ServiceAgreementDetail + storage: Storage + vATRate: VATRate + wageCodeReportCategory: WageCodeReportCategory +} + +type InvoiceLine_Session { + invoiceLineSessionId: Int! + amount: Decimal + basisSumPercentInvoice: Decimal + costPrice: Decimal + enum_InvoiceLineRuleTypeDetailId: ID + fieldAttributesAsJSON: String + invoiceId: Int + invoiceLineCode: String + invoiceLineId: Int + invoiceLineRuleId: Int + invoiceLineText: String + invoicingDimensionValueId: Int + productSupplierIndustryTypeId: Int + quantityInvoice: Decimal + salesPriceInvoice: Decimal + sessionId: String + sortOrder: Int + sourceProductNoteLineIds: String + sourceServiceIds: String + storageId: Int + surchargePercentInvoice: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + updateAssignmentCost: Boolean! + updateStatus: Short + updateStock: Boolean! +} + +type InvoiceLineRule { + invoiceLineRuleId: Short! + combined_InvoiceLineRuleCode_Description: String + cost_ProjectAccountId: Int + costPrice: Decimal + description: String! + enum_InvoiceLineRuleTypeDetailId: ID! + enum_InvoiceLineRuleTypeId: ID! + externalInvoiceLineCode: String + income_ProjectAccountId: Int + invoiceLineRuleCode: String! + invoiceLineTextEditable: Boolean! + notUseOnFixedPrice: Boolean! + override_InvoiceLineCode: String + override_InvoiceLineText: String + priceOnly: Boolean! + sale_VATFree_LedgerAccountId: Short + sale_VATRequired_LedgerAccountId: Short + salesPrice: Decimal + surchargePercent: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + vATRateId: Short + wageCodeReportCategoryId: Int + wageType_CarExpenses: Boolean! + wageType_Diet: Boolean! + wageType_OrdinaryWage: Boolean! + wageType_Overtime: Boolean! + wageType_TravelExpenses: Boolean! + wageType_VariousExtra: Boolean! + externalSystemInvoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceLineRuleSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceTemplateDetailSet + cost_ProjectAccount: ProjectAccount + enum_InvoiceLineRuleTypeDetail: Enum_InvoiceLineRuleTypeDetail + enum_InvoiceLineRuleType: Enum_InvoiceLineRuleType + income_ProjectAccount: ProjectAccount + sale_VATFree_LedgerAccount: LedgerAccount + sale_VATRequired_LedgerAccount: LedgerAccount + vATRate: VATRate + wageCodeReportCategory: WageCodeReportCategory +} + +type InvoiceLineRuleTypeDetail { + invoiceLineRuleTypeDetailId: Short! + enum_InvoiceLineRuleTypeDetailId: ID! + enum_InvoiceLineRuleTypeId: ID! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_InvoiceLineRuleTypeDetail: Enum_InvoiceLineRuleTypeDetail + enum_InvoiceLineRuleType: Enum_InvoiceLineRuleType +} + +type InvoiceTemplate { + invoiceTemplateId: Short! + description: String! + invoiceTemplateNumber: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + externalSystemInvoiceTemplates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateSet + invoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceTemplateDetailSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet +} + +type InvoiceTemplateDetail { + invoiceTemplateDetailId: Short! + invoiceLineRuleId: Short! + invoiceTemplateId: Short! + sortOrder: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemInvoiceTemplateDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemInvoiceTemplateDetailSet + invoiceLineRule: InvoiceLineRule + invoiceTemplate: InvoiceTemplate +} + +type JobCategory { + jobCategoryId: Short! + combined_Number_Name: String + name: String! + number: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + employees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet + externalSystemJobCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemJobCategorySet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + wageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateSet +} + +type LedgerAccount { + ledgerAccountId: Short! + description: String! + ledgerAccountNumber: Int + parentLedgerAccountId: Short + projectAccountId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemLedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemLedgerAccountSet + invoiceLineCost_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineIncome_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineRuleSale_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + invoiceLineRuleSale_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + ledgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): LedgerAccountSet + productPOSPurchase_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productPOSPurchase_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productPOSSale_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productPOSSale_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productPurchase_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productPurchase_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productSale_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productSale_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productNoteLineCost_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineIncome_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + serviceCost_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceIncome_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + settings_ProductImportPOSPurchase_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportPOSPurchase_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportPOSSale_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportPOSSale_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportPurchase_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportPurchase_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportSale_VATFree_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportSale_VATRequired_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + storageBalance_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageSet + storageProfitAndLoss_LedgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + view_Storages_Balance_LedgerAccount(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StorageSet + view_Storages_ProfitAndLoss_LedgerAccount(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StorageSet + parentLedgerAccount: LedgerAccount + projectAccount: ProjectAccount +} + +type MapData { + mapDataId: Int! + applyDoneUTC: DateTime + applyStartedUTC: DateTime + description: String + entityId: Long! + entityType: String! + isInUse: Boolean! + mapDataValueId: Int + number: String + suggested_MapDataValueId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + mapDataValue: MapDataValue + suggested_MapDataValue: MapDataValue +} + +type MapDataValue { + mapDataValueId: Int! + combined_Number_Description: String + description: String + descriptionPart1: String + descriptionPart2: String + entityType: String! + externalId: String + externalSystemId: Short + number: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + mapDataMapDataValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): MapDataSet + mapDataSuggested_MapDataValues(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): MapDataSet + externalSystem: ExternalSystem +} + +type PaymentTerm { + paymentTermId: Short! + days: Short! + daysStartNextMonth: Boolean! + description: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + externalSystemPaymentTerms(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPaymentTermSet + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet +} + +type Permission { + permissionId: Short! + description: String + isForFrontend: Boolean! + name: String! + reportIfMissing: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemPermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemPermissionSet + rolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): RolePermissionSet + view_UserPermissions_Permission(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_UserPermissionSet +} + +type Product { + productId: Int! + combined_ProductNumber_ProductName: String + cost_ProjectAccountId: Int + countryId: String + fullProductNumber: String + gTIN: Long + income_ProjectAccountId: Int + industryTypeId: Short! + invoiceMergeProduct: Boolean! + invoiceShowProductNumber: Boolean! + isVarious: Boolean! + pOSPurchase_VATFree_LedgerAccountId: Short + pOSPurchase_VATRequired_LedgerAccountId: Short + pOSSale_VATFree_LedgerAccountId: Short + pOSSale_VATRequired_LedgerAccountId: Short + priceOnly: Boolean! + productName: String + productNumber: String! + purchase_VATFree_LedgerAccountId: Short + purchase_VATRequired_LedgerAccountId: Short + sale_VATFree_LedgerAccountId: Short + sale_VATRequired_LedgerAccountId: Short + salesPrice: Decimal + statisticsInclude: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + unit: String + vATRateId: Short + assignmentMOMs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentMOMSet + attachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AttachmentSet + externalSystemProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSet + productBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductBatchSet + productExtendedInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductExtendedInfoSet + productSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSupplierIndustryTypeSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + stocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockSet + stockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + storageTransfers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageTransferSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + view_Stocks_Product(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockSet + view_StockTransactions_Product(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + cost_ProjectAccount: ProjectAccount + country: Country + income_ProjectAccount: ProjectAccount + industryType: IndustryType + pOSPurchase_VATFree_LedgerAccount: LedgerAccount + pOSPurchase_VATRequired_LedgerAccount: LedgerAccount + pOSSale_VATFree_LedgerAccount: LedgerAccount + pOSSale_VATRequired_LedgerAccount: LedgerAccount + purchase_VATFree_LedgerAccount: LedgerAccount + purchase_VATRequired_LedgerAccount: LedgerAccount + sale_VATFree_LedgerAccount: LedgerAccount + sale_VATRequired_LedgerAccount: LedgerAccount + vATRate: VATRate +} + +type ProductAgreement { + productAgreementId: Short! + calculateFromInvoice: Boolean! + description: String! + industryTypeId: Short! + number: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + usePriceFrom_SupplierIndustryTypeId: Short + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + assignmentProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProductAgreementSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + customerProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerProductAgreementSet + departments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DepartmentSet + externalSystemProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductAgreementDetailSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + projectProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectProductAgreementSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet + industryType: IndustryType + usePriceFrom_SupplierIndustryType: SupplierIndustryType +} + +type ProductAgreementDetail { + productAgreementDetailId: Int! + description: String + enum_ProductAgreementDetail_PriceTypeId: ID! + extraSurchargePercent: Decimal! + from: String! + fromNumeric: Long + fullFrom: String + fullTo: String! + price: Decimal! + priority: Short! + productAgreementId: Short! + surchargePercent: Decimal! + surchargePercentIsVisible: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + to: String! + toNumeric: Long + externalSystemProductAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductAgreementDetailSet + enum_ProductAgreementDetail_PriceType: Enum_ProductAgreementDetail_PriceType + productAgreement: ProductAgreement +} + +type ProductBatch { + productBatchId: Int! + costPrice: Decimal + productId: Int! + quantity: Decimal! + sortOrder: Int + stockId: Int! + storageId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productNoteLineBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineBatchSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + product: Product + stock: Stock + storage: Storage +} + +type ProductCampaign { + productCampaignId: Short! + campaignQuantity: Decimal + endDatetimeUTC: DateTime + productSupplierIndustryTypeId: Int! + salesPrice: Decimal + startDatetimeUTC: DateTime + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productSupplierIndustryType: ProductSupplierIndustryType +} + +type ProductExtendedInfo { + productExtendedInfoId: Int! + productId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + type: String! + value: String! + product: Product +} + +type ProductImport { + productImportId: Int! + enum_FileDownloadModeId: ID! + fileName: String + ftpDir: String + ftpFileName: String + ftpHash: String + ftpLastChangedDateTimeUTC: DateTime + ftpPwd: String + ftpSize: Long + ftpSupportsHash: Boolean + ftpSvr: String + ftpUsr: String + hash: String + imported_UTC: DateTime + isProductAgreement: Boolean! + lastSuccess_FileName: String + lastSuccess_Imported_UTC: DateTime + lastSuccess_Staged_LineCount: Int + lastSuccess_Staged_UTC: DateTime + lastSuccess_StagingInMs: Int + lastSuccess_StatusMessage: String + manuallyUpladed: Boolean! + productImportFileSetId: Int! + size: Long + staged_LineCount: Int + staged_UTC: DateTime + stagingInMs: Int + statusMessage: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_FileDownloadMode: Enum_FileDownloadMode + productImportFileSet: ProductImportFileSet +} + +type ProductImportFileSet { + productImportFileSetId: Int! + enum_ImportFrequencyId: ID + importingInMs: Int + jobNumber: Int + jobStartedUTC: DateTime + lastSuccess_ImportingInMs: Int + lastSuccess_JobNumber: Int + lastSuccess_JobStartedUTC: DateTime + lastSuccess_ProductCount: Int + lastSuccess_StagingInMs: Int + lastSuccess_StatusMessage: String + manuallyRequested: Boolean! + manuallyUploaded: Boolean! + productCount: Int + stagingInMs: Int + statusMessage: String + succeeded: Boolean + supplierIndustryTypeId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productImports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductImportSet + enum_ImportFrequency: Enum_ImportFrequency + supplierIndustryType: SupplierIndustryType +} + +type ProductNote { + productNoteId: Int! + assignmentId: Int + customerId: Int + departmentId: Short + documentIdExt: Int + documentOrigin: Int + enum_OriginTypeId: ID! + noteDescription: String + noteMovedFromAssignmentId: Int + noteMovedToAssignmentId: Int + noteMovedToStorageId: Short + productNoteNumber: Int + regBy_EmployeeId: Int + registeredTimeUTC: DateTime + returnNote: Boolean! + skipOnNextInvoice: Boolean! + supplierInvoiceId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + view_InvoicedLineCount: Int! + voucherNumber: String + externalSystemProductNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteSet + productNoteAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteAttachmentSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + assignment: Assignment + customer: Customer + department: Department + enum_OriginType: Enum_OriginType + noteMovedFromAssignment: Assignment + noteMovedToAssignment: Assignment + noteMovedToStorage: Storage + regBy_Employee: Employee + supplierInvoice: SupplierInvoice +} + +type ProductNoteAttachment { + productNoteAttachmentId: Int! + attachmentId: Int! + productNoteId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + productNote: ProductNote +} + +type ProductNoteLine { + productNoteLineId: Int! + cost_LedgerAccountId: Short + cost_ProjectAccountId: Int + costPrice: Decimal + customerPrice: Decimal + departmentId: Short + dimensionValueId_1: Int + dimensionValueId_2: Int + dimensionValueId_3: Int + dimensionValueId_4: Int + dimensionValueId_5: Int + dimensionValueId_6: Int + enum_CostPriceSourceId: ID! + enum_InvoicingLineStatusId: ID! + income_LedgerAccountId: Short + income_ProjectAccountId: Int + invoiceId: Int + invoiceLineId: Int + invoiceSpecificationNumber: Int + isVarious: Boolean! + listPrice: Decimal + override_QuantityInvoice: Decimal + parent_ProductNoteLineId: Int + priceOnly: Boolean! + productAgreementId: Short + productName: String + productNoteId: Int! + productNumber: String + productNumberFromName: String + productSupplierIndustryTypeId: Int + projectPeriodId: Int + quantity: Decimal + quantityInvoice: Decimal + registeredDateTimeUTC: DateTime + salesPrice: Decimal + salesPriceInvoice: Decimal + salesPriceModified: Boolean! + sortOrder: Int! + storageId: Short + supplierInvoiceLineId: Int + surchargePercent: Decimal + surchargePercentInvoice: Decimal + syncToMobileDevice: Boolean! + sys_AssignmentId: Int + sys_CostPriceAvgFIFO: Decimal + sys_CostPriceAvgUpdOnAdd: Decimal + sys_CostPriceDefault: Decimal + sys_CostPriceLocked: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Enum_OriginTypeId: ID + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_InvoicedProjectPeriod: Int + sys_InvoicedProjectPeriodId: Int + sys_LastChangeOrigin: String + sys_PostProcessNeeded: Boolean! + sys_ProjectAccountCategoryId: Short + sys_ProjectPeriod: Int + sys_PurchaseAgreementId: Short + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + updateAssignmentCost: Boolean! + updateStock: Boolean! + externalSystemProductNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductNoteLineSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineBatchSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + cost_LedgerAccount: LedgerAccount + cost_ProjectAccount: ProjectAccount + department: Department + dimensionValue_1: DimensionValue + dimensionValue_2: DimensionValue + dimensionValue_3: DimensionValue + dimensionValue_4: DimensionValue + dimensionValue_5: DimensionValue + dimensionValue_6: DimensionValue + enum_CostPriceSource: Enum_CostPriceSource + enum_InvoicingLineStatus: Enum_InvoicingLineStatus + income_LedgerAccount: LedgerAccount + income_ProjectAccount: ProjectAccount + invoice: Invoice + invoiceLine: InvoiceLine + parent_ProductNoteLine: ProductNoteLine + productAgreement: ProductAgreement + productNote: ProductNote + productSupplierIndustryType: ProductSupplierIndustryType + projectPeriod: ProjectPeriod + storage: Storage + supplierInvoiceLine: SupplierInvoiceLine + sys_PurchaseAgreement: PurchaseAgreement + view_DimensionValueWithDimensionLevel_1: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_2: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_3: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_4: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_5: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_6: View_DimensionValueWithDimensionLevel + view_ProductNoteLine: View_ProductNoteLine +} + +type ProductNoteLineBatch { + productNoteLineBatchId: Int! + productBatchId: Int + productNoteLineId: Int! + quantity: Decimal! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_HistoricStorageId: Short + sys_HistoricWorkaround: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productBatch: ProductBatch + productNoteLine: ProductNoteLine +} + +type ProductSupplierIndustryType { + productSupplierIndustryTypeId: Int! + costPriceOverride: Decimal + discountGroupId: Int + inactive: Boolean + listPrice: Decimal + note: String + productId: Int + productName: String + supplierIndustryTypeId: Short + supplierProductNumber: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemProductSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProductSupplierIndustryTypeSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productCampaigns(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductCampaignSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + purchaseAgreementDiscountProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementDiscountProductSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + supplierInvoiceProductMatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceProductMatchSet + view_ProductSupplierIndustryTypeWithPrices_ProductSupplierIndustryType(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_ProductSupplierIndustryTypeWithPriceSet + view_StockTransactions_ProductSupplierIndustryType(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + discountGroup: DiscountGroup + product: Product + supplierIndustryType: SupplierIndustryType + view_ProductSupplierIndustryTypeWithPrice: View_ProductSupplierIndustryTypeWithPrice +} + +type ProductSync { + productSyncId: Int! + abortRequested: Boolean! + description: String + enum_SyncStatusId: ID + externalSystemId: Short! + fullProductNumberFrom: String + fullProductNumberTo: String + lastTransferMilliseconds: Int + lastTransferredId: Int + productNumberFrom: String! + productNumberTo: String! + progress: Int + progressPercentage: Decimal + progressTargetCount: Int + statusDescription: String + supplierIndustryTypeId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_SyncStatus: Enum_SyncStatus + externalSystem: ExternalSystem + supplierIndustryType: SupplierIndustryType +} + +type Project { + projectId: Int! + budget_DimensionId: Int + caseHandler_EmployeeId: Int + code: String! + combined_Code_Name: String + contactId: Int + customerId: Int + customersReference: String + default_AssignmentCategoryId: Int + default_InvoiceTemplateId: Short + default_ProductAgreementId: Short + departmentId: Short + description: String + endDateUTC: Date + enum_ProjectAssessmentTypeId: ID! + enum_ProjectStatusId: ID! + estimatedCompletionPercentage: Decimal + estimatedTotalHours: Decimal + fixedPrice: Decimal + internal: Boolean! + invoiceReserveSumAllAssignment: Boolean! + marginPercent: Decimal + name: String + note: String + parentProjectId: Int + projectAssessment: Boolean! + projectDateTimeUTC: DateTime + projectGroupId: Short + projectTypeId: Short + reference: String + riskMarginPercent: Decimal + serviceAgreementId: Short + startDateUTC: Date + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + warrantyDateUTC: Date + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + budgets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetSet + dimensionUses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DimensionUseSet + externalSystemProjects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectSet + invoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + projectAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAttachmentSet + projectProductAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectProductAgreementSet + projectPurchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectPurchaseAgreementSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet + wageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateSet + wageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateEmployeeSet + budget_Dimension: Dimension + caseHandler_Employee: Employee + contact: Contact + customer: Customer + default_AssignmentCategory: AssignmentCategory + default_InvoiceTemplate: InvoiceTemplate + default_ProductAgreement: ProductAgreement + department: Department + enum_ProjectAssessmentType: Enum_ProjectAssessmentType + enum_ProjectStatus: Enum_ProjectStatus + parentProject: Project + projectGroup: ProjectGroup + projectType: ProjectType + serviceAgreement: ServiceAgreement +} + +type ProjectAccount { + projectAccountId: Int! + accountNumber: Int + assessment_ProjectAccountReportCategoryId: Int + budgetUse: Boolean! + combined_AccountNumber_Description: String + description: String! + projectAccountCategoryId: Short! + summary_ProjectAccountReportCategoryId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + budgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLineSet + externalSystemProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectAccountSet + invoiceLineCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineIncome_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineRuleCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + invoiceLineRuleIncome_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + ledgerAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): LedgerAccountSet + productCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productIncome_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + productNoteLineCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLineIncome_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + serviceCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceCostSurcharge_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceIncome_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + settings_ProductImportCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + settings_ProductImportIncome_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + wageCodeCost_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet + wageCodeCostSurcharge_ProjectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet + assessment_ProjectAccountReportCategory: ProjectAccountReportCategory + projectAccountCategory: ProjectAccountCategory + summary_ProjectAccountReportCategory: ProjectAccountReportCategory + view_ProjectAccountsForBudget: View_ProjectAccountsForBudget +} + +type ProjectAccountCategory { + projectAccountCategoryId: Short! + description: String! + enum_ProjectAccountCategoryTypeId: ID! + invoiceOnly: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + projectAccounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountSet + enum_ProjectAccountCategoryType: Enum_ProjectAccountCategoryType +} + +type ProjectAccountReportCategory { + projectAccountReportCategoryId: Int! + description: String! + projectAccountReportCategoryTypeId: Short + reportText: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + projectAccountAssessment_ProjectAccountReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountSet + projectAccountSummary_ProjectAccountReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountSet + projectAccountReportCategoryType: ProjectAccountReportCategoryType +} + +type ProjectAccountReportCategoryType { + projectAccountReportCategoryTypeId: Short! + description: String! + reportText: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + projectAccountReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountReportCategorySet +} + +type ProjectAttachment { + projectAttachmentId: Int! + attachmentId: Int! + projectId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + project: Project +} + +type ProjectGroup { + projectGroupId: Short! + code: String! + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemProjectGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectGroupSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet +} + +type ProjectPeriod { + projectPeriodId: Int! + combined_Year_Number: Int + combined_Year_Number_Description: String + description: String + endDate: Date! + periodNumber: Short! + periodYear: Short! + startDate: Date + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignmentProjectPeriodInvoiceReserves(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentProjectPeriodInvoiceReserveSet + budgetFromProjectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetSet + budgetToProjectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetSet + budgetLinePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLinePeriodSet + externalSystemProjectPeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectPeriodSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + wagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WagePeriodSet +} + +type ProjectProductAgreement { + projectProductAgreementId: Short! + number: Short + priority: Short! + productAgreementId: Short! + projectId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productAgreement: ProductAgreement + project: Project +} + +type ProjectPurchaseAgreement { + projectPurchaseAgreementId: Short! + priority: Short! + projectId: Int! + purchaseAgreementId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + project: Project + purchaseAgreement: PurchaseAgreement +} + +type ProjectReport { + projectReportId: Short! + description: String! + projectReportNumber: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + projectReportDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectReportDetailSet +} + +type ProjectReportDetail { + projectReportDetailId: Short! + enum_ProjectReportDetailTypeId: ID! + fromNumber: Int + projectReportId: Short! + reportText: String + sortOrder: Int! + sumLevel: Short + sumLevelReset: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + toNumber: Int + enum_ProjectReportDetailType: Enum_ProjectReportDetailType + projectReport: ProjectReport + view_ProjectReportDetail: View_ProjectReportDetail +} + +type ProjectType { + projectTypeId: Short! + code: String! + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemProjectTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemProjectTypeSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet +} + +type PurchaseAgreement { + purchaseAgreementId: Short! + agreementCode: String + description: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignmentPurchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentPurchaseAgreementSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + projectPurchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectPurchaseAgreementSet + purchaseAgreementDiscountGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementDiscountGroupSet + purchaseAgreementDiscountProducts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementDiscountProductSet + supplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeSet + supplierIndustryType: SupplierIndustryType +} + +type PurchaseAgreementDiscountGroup { + purchaseAgreementDiscountGroupId: Int! + description: String + discountGroupId: Int! + listPriceDiscountPercent: Decimal + purchaseAgreementId: Short + surchargePercent: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + discountGroup: DiscountGroup + purchaseAgreement: PurchaseAgreement +} + +type PurchaseAgreementDiscountProduct { + purchaseAgreementDiscountProductId: Int! + fixedCostPrice: Decimal + listPriceDiscountPercent: Decimal + productSupplierIndustryTypeId: Int + purchaseAgreementId: Short! + surchargePercent: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + productSupplierIndustryType: ProductSupplierIndustryType + purchaseAgreement: PurchaseAgreement +} + +type Role { + roleId: Short! + adminFor_Enum_ClientLevelId: ID! + description: String + enum_ClientLevelId: ID! + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRoleSet + rolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): RolePermissionSet + userRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserRoleSet + adminFor_Enum_ClientLevel: Enum_ClientLevel + enum_ClientLevel: Enum_ClientLevel +} + +type RolePermission { + rolePermissionId: Short! + permissionId: Short! + roleId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemRolePermissions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemRolePermissionSet + permission: Permission + role: Role +} + +type Service { + serviceId: Int! + approvalComment: String + assignmentId: Int + cost_LedgerAccountId: Short + cost_ProjectAccountId: Int + costPrice: Decimal! + costPriceSurcharge: Decimal! + costPriceSurchargePercent: Decimal! + costSurcharge_ProjectAccountId: Int + createdFrom_ServiceId: Int + departmentId: Short + dimensionValueId_1: Int + dimensionValueId_2: Int + dimensionValueId_3: Int + dimensionValueId_4: Int + dimensionValueId_5: Int + dimensionValueId_6: Int + employeeId: Int! + employeeInvoiceCategoryId: Short + endDateTimeUTC: DateTime + enum_InvoicingLineStatusId: ID! + enum_WageCodeInvoiceRuleId: ID! + enum_WagePeriodStatusId: ID! + income_LedgerAccountId: Short + income_ProjectAccountId: Int + invoice_ApprovalEmployeeId: Int + invoice_Enum_ApprovalStatusId: ID! + invoiceDescription: String + invoiceId: Int + invoiceLineId: Int + jobCategoryId: Short + movedFromAssignmentId: Int + movedToAssignmentId: Int + pieceworkNumber: Int + projectPeriodId: Int + quantity: Decimal! + quantityInvoice: Decimal + salesPrice: Decimal! + salesPriceInvoice: Decimal + serviceComment: String + startDateTimeUTC: DateTime! + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Enum_WageCodeTypeId: ID + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_InvoicedProjectPeriod: Int + sys_InvoicedProjectPeriodId: Int + sys_IsWorkTime: Boolean + sys_LastChangeOrigin: String + sys_NextWageCodeProcessed: Boolean! + sys_PostProcessMessage: String + sys_PostProcessNeeded: Boolean! + sys_ProjectAccountCategoryId: Short + sys_ProjectPeriod: Int + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wage_ApprovalEmployeeId: Int + wage_Enum_ApprovalStatusId: ID! + wageCodeId: Short + wageCodeName: String + wageCodeReportCategoryId: Int + wagePeriodId: Int + weekNumber: Int + externalSystemServices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceSet + assignment: Assignment + cost_LedgerAccount: LedgerAccount + cost_ProjectAccount: ProjectAccount + costSurcharge_ProjectAccount: ProjectAccount + department: Department + dimensionValue_1: DimensionValue + dimensionValue_2: DimensionValue + dimensionValue_3: DimensionValue + dimensionValue_4: DimensionValue + dimensionValue_5: DimensionValue + dimensionValue_6: DimensionValue + employee: Employee + employeeInvoiceCategory: EmployeeInvoiceCategory + enum_InvoicingLineStatus: Enum_InvoicingLineStatus + enum_WageCodeInvoiceRule: Enum_WageCodeInvoiceRule + enum_WagePeriodStatus: Enum_WagePeriodStatus + income_LedgerAccount: LedgerAccount + income_ProjectAccount: ProjectAccount + invoice_ApprovalEmployee: Employee + invoice_Enum_ApprovalStatus: Enum_ApprovalStatus + invoice: Invoice + invoiceLine: InvoiceLine + jobCategory: JobCategory + movedFromAssignment: Assignment + movedToAssignment: Assignment + projectPeriod: ProjectPeriod + wage_ApprovalEmployee: Employee + wage_Enum_ApprovalStatus: Enum_ApprovalStatus + wageCode: WageCode + wageCodeReportCategory: WageCodeReportCategory + wagePeriod: WagePeriod + view_Service: View_Service + view_DimensionValueWithDimensionLevel_1: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_2: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_3: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_4: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_5: View_DimensionValueWithDimensionLevel + view_DimensionValueWithDimensionLevel_6: View_DimensionValueWithDimensionLevel +} + +type ServiceAgreement { + serviceAgreementId: Short! + description: String! + number: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + customers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): CustomerSet + departments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DepartmentSet + externalSystemServiceAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementSet + projects(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectSet + serviceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceAgreementDetailSet + settings_Assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_AssignmentSet +} + +type ServiceAgreementDetail { + serviceAgreementDetailId: Int! + employeeInvoiceCategoryId: Short! + enum_ServiceAgreementDetailValueTypeId: ID! + invoiceDescription: String + serviceAgreementId: Short! + surchargePercent: Decimal! + surchargePercentIsVisible: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + value: Decimal + wageCodeId: Short! + externalSystemServiceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemServiceAgreementDetailSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + employeeInvoiceCategory: EmployeeInvoiceCategory + enum_ServiceAgreementDetailValueType: Enum_ServiceAgreementDetailValueType + serviceAgreement: ServiceAgreement + wageCode: WageCode +} + +type ServiceContract { + serviceContractId: Int! + default_AssignmentId: Int! + endDateUTC: Date + enum_ServiceContractRecurrenceHandlingId: ID! + inactive: Boolean! + indexRate: Decimal + indexRateGroupId: Short! + indexRateStartDate: Date + invoiceRecurrencePattern: String + recurrencePattern: String + serviceContractNumber: Int! + startDateUTC: Date + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + assignments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet + enum_ServiceContractRecurrenceHandling: Enum_ServiceContractRecurrenceHandling + indexRateGroup: IndexRateGroup +} + +type Settings_Assignment { + settings_AssignmentId: Short! + allowHpcTimeCorrection: Boolean + approveBeforeInvoicing: Boolean! + approveHoursBeforeInvoicing: Boolean! + assignmentDateToStartDate: Boolean! + budgetNew_AddAllItem: Boolean! + copyCategoryFromCustomer: Boolean! + coverageRateFixedPrice: Decimal + coverageRateNotFixedPrice: Decimal + default_AssignmentCategoryId: Int + default_CasehandlerEmployeeId: Int + default_InvoiceTemplateId: Short + default_ProductAgreementId: Short + default_ProjectId: Int + default_ServiceAgreementId: Short + default_SyncToMobileDevice: Boolean! + enum_InvoiceReserveBilledPriceCalculationId: ID! + enum_InvoiceReserveFixedPriceCalculationId: ID! + invoice_IsFinalInvoice: Boolean! + invoice_SendImmediately: Boolean! + mandatoryCaseHandler: Boolean! + mandatoryCategory: Boolean! + mandatoryHpcCategory: Boolean! + mandatoryMatAgreement: Boolean! + minimumCoveragePercent: Decimal + noChangeCustomerAfterTimeMatInv: Boolean! + productNote_CostPrice_Edit: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + default_AssignmentCategory: AssignmentCategory + default_CasehandlerEmployee: Employee + default_InvoiceTemplate: InvoiceTemplate + default_ProductAgreement: ProductAgreement + default_Project: Project + default_ServiceAgreement: ServiceAgreement + enum_InvoiceReserveBilledPriceCalculation: Enum_InvoiceReserveBilledPriceCalculation + enum_InvoiceReserveFixedPriceCalculation: Enum_InvoiceReserveFixedPriceCalculation +} + +type Settings_Main { + settings_MainId: Short! + autoFallbackProductNumber: String + branch: String + clientName: String + defaultLanguage: String + departmentId: Short + email: String + enum_StorageModeId: ID! + enum_TimeZoneId: ID! + handleOffers: Boolean! + industryTypeId: Short + invoice_KeepValuesForCreditNotes: Boolean! + invoice_SendImmediately: Boolean! + invoiceTemplateId: Short + paymentTermId: Short + phoneNumberForSMS: String + preserveGridSettingsLocally: Boolean! + productId: Int + productNote_CostPrice_Edit: Boolean! + projectPeriod_AutoCreate: Boolean! + projectPeriod_LastClosedYYYYPP: Int + require2FAForAllUsers: Boolean! + standard_SupplierIndustryTypeId: Short + storageId: Short + supplierIndustryTypeId: Short + supplierInvoice_ImportWhenApproved: Boolean! + supportEmail_Partner: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + useDepartments: Boolean! + useDimensions: Boolean! + useServiceApprovalWage: Boolean! + department: Department + enum_StorageMode: Enum_StorageMode + enum_TimeZone: Enum_TimeZone + industryType: IndustryType + invoiceTemplate: InvoiceTemplate + paymentTerm: PaymentTerm + product: Product + standard_SupplierIndustryType: SupplierIndustryType + storage: Storage + supplierIndustryType: SupplierIndustryType +} + +type Settings_Payroll { + settings_PayrollId: Short! + enum_PayrollFormatId: ID! + hultLillevikClientId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + enum_PayrollFormat: Enum_PayrollFormat +} + +type Settings_ProductImport { + settings_ProductImportId: Short! + cost_ProjectAccountId: Int + income_ProjectAccountId: Int + pOSPurchase_VATFree_LedgerAccountId: Short + pOSPurchase_VATRequired_LedgerAccountId: Short + pOSSale_VATFree_LedgerAccountId: Short + pOSSale_VATRequired_LedgerAccountId: Short + purchase_VATFree_LedgerAccountId: Short + purchase_VATRequired_LedgerAccountId: Short + sale_VATFree_LedgerAccountId: Short + sale_VATRequired_LedgerAccountId: Short + supplierIndustryTypeId: Short + surchargeDiscountGroup: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + vATRateId: Short + cost_ProjectAccount: ProjectAccount + income_ProjectAccount: ProjectAccount + pOSPurchase_VATFree_LedgerAccount: LedgerAccount + pOSPurchase_VATRequired_LedgerAccount: LedgerAccount + pOSSale_VATFree_LedgerAccount: LedgerAccount + pOSSale_VATRequired_LedgerAccount: LedgerAccount + purchase_VATFree_LedgerAccount: LedgerAccount + purchase_VATRequired_LedgerAccount: LedgerAccount + sale_VATFree_LedgerAccount: LedgerAccount + sale_VATRequired_LedgerAccount: LedgerAccount + supplierIndustryType: SupplierIndustryType + vATRate: VATRate +} + +type Settings_User { + settings_UserId: Short! + cwUserId: Int + key: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + value: String! +} + +type Stock { + stockId: Int! + averageCostPrice: Decimal + averageCostPriceFIFO: Decimal + lastCostPrice: Decimal + productId: Int! + quantity: Decimal + quantityMax: Decimal + quantityMin: Decimal + quantityMOQ: Decimal + quantityOnOrder: Decimal + stockValueFIFO: Decimal + stockValueNotFIFO: Decimal + storageId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_NextBatchSortOrder: Int! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemStocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockSet + productBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductBatchSet + stockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + product: Product + storage: Storage +} + +type StockCount { + stockCountId: Int! + approved: Boolean! + approvedBy_EmployeeId: Int + comment: String + countEndedUTC: DateTime + countStartedUTC: DateTime + fullCount: Boolean! + responsible_EmployeeId: Int + storageId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemStockCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountSet + stockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + approvedBy_Employee: Employee + responsible_Employee: Employee + storage: Storage + updatedByUser: User + createdByUser: User +} + +type StockCountLine { + stockCountLineId: Int! + approved: Boolean! + approvedBy_EmployeeId: Int + comment: String + costPrice: Decimal + countDoneUTC: DateTime + employeeId: Int + productId: Int + quantity: Decimal + quantityOnStock: Decimal + stockAdjustmentPerformed: Boolean! + stockCountId: Int + stockId: Int + storageId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemStockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockCountLineSet + approvedBy_Employee: Employee + employee: Employee + product: Product + stockCount: StockCount + stock: Stock + storage: Storage +} + +type StockTransaction { + stockTransactionId: Int! + assignmentId: Int + averageCostPrice: Decimal + averageCostPriceFIFO: Decimal + comment: String + costPrice: Decimal + customerId: Int + enum_StockTransactionOriginId: ID! + movedFromStorageId: Short + movedToStorageId: Short + productBatchId: Int + productId: Int + productSupplierIndustryTypeId: Int + quantity: Decimal! + registeredBy_EmployeeId: Int + sequenceNumber: Int + stockAverageCostPrice_ComputedWithStorageMode: Decimal + storageId: Short! + sys_CostPriceFIFO: Decimal + sys_CostPriceIncoming: Decimal + sys_CostPriceNotFIFO: Decimal + sys_CostPriceNotStock: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Enum_StorageModeId: ID! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_ProductNoteLineId: Int + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + totalStockQuantity: Decimal + externalSystemStockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStockTransactionSet + assignment: Assignment + customer: Customer + enum_StockTransactionOrigin: Enum_StockTransactionOrigin + productBatch: ProductBatch + product: Product + productSupplierIndustryType: ProductSupplierIndustryType + registeredBy_Employee: Employee + storage: Storage + sys_Enum_StorageMode: Enum_StorageMode + sys_ProductNoteLine: ProductNoteLine + updatedByUser: User + createdByUser: User +} + +type Storage { + storageId: Short! + balance_LedgerAccountId: Short + countInProgress: Boolean! + description: String! + profitAndLoss_LedgerAccountId: Short + responsibleEmployeeId: Int + storageNumber: Short + supplierInvoice_VirtualAssignmentNumber: Int + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemStorages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + productBatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductBatchSet + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + settings_Mains(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + stocks(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockSet + stockCounts(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountSet + stockCountLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountLineSet + stockTransactions(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + storageDepartments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageDepartmentSet + storageTransferStorageID_Froms(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageTransferSet + storageTransferStorageID_Tos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StorageTransferSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + view_Stocks_Storage(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockSet + view_StockTransactions_Storage(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + balance_LedgerAccount: LedgerAccount + profitAndLoss_LedgerAccount: LedgerAccount + responsibleEmployee: Employee +} + +type StorageDepartment { + storageDepartmentId: Short! + departmentId: Short! + isDefaultStorage: Boolean! + storageId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + department: Department + storage: Storage +} + +type StorageTransfer { + storageTransferId: Int! + productId: Int! + quantity: Decimal! + regBy_EmployeeId: Int + registeredTimeUTC: DateTime + storageId_From: Short! + storageId_To: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_PostProcessNeeded: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemStorageTransfers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemStorageTransferSet + product: Product + storageID_From: Storage + storageID_To: Storage +} + +type Supplier { + supplierId: Int! + countryId: String! + organizationNumber: String + supplierName: String + supplierNumber: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemSuppliers(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierSet + supplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeSet + supplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceSet + supplierInvoiceProductMatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceProductMatchSet + addresses(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AddressSet + country: Country +} + +type SupplierIndustryType { + supplierIndustryTypeId: Short! + customerNumber: String + default_PurchaseAgreementId: Short + defaultUnknown_ProductSupplierIndustryTypeId: Int + industryTypeId: Short! + isCustom: Boolean! + isDefaultForIndustryType: Boolean! + markupForNewDiscountGroups: Decimal + name: String! + number: Short + organizationNumber: String + priceCalculationBase: Boolean! + priceLastUpdateDate: Date + supplierId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_IsTemplateActivated: Boolean! + sys_IsTemplateRow: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + useOtherCurrency: Boolean! + discountGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): DiscountGroupSet + externalSystemSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierIndustryTypeSet + productAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductAgreementSet + productImportFileSets(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductImportFileSetSet + productSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSupplierIndustryTypeSet + productSyncs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSyncSet + settings_MainStandard_SupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + settings_MainSupplierIndustryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_MainSet + settings_ProductImports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + supplierIndustryTypeFtpInfos(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierIndustryTypeFtpInfoSet + supplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceSet + supplierInvoiceProductMatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceProductMatchSet + purchaseAgreements(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): PurchaseAgreementSet + default_PurchaseAgreement: PurchaseAgreement + industryType: IndustryType + supplier: Supplier +} + +type SupplierIndustryTypeFtpInfo { + supplierIndustryTypeFtpInfoId: Short! + autoImport: Boolean! + directoryPath: String + enum_FileDownloadModeId: ID! + enum_ImportFormatId: ID! + enum_ImportTypeId: ID! + fileMask: String + ftpLastCheckedUTC: DateTime + maxDownloadTryCount: Short! + maxImportTryCount: Short! + password: String + server: String + supplierIndustryTypeId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + userName: String + importFiles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ImportFileSet + enum_FileDownloadMode: Enum_FileDownloadMode + enum_ImportFormat: Enum_ImportFormat + enum_ImportType: Enum_ImportType + supplierIndustryType: SupplierIndustryType +} + +type SupplierInvoice { + supplierInvoiceId: Int! + description: String + enum_SupplierInvoiceStatusId: ID! + industryTypeId: Short + invoiceDate: Date + invoiceNumber: String + isCreditNote: Boolean! + lineCount: Short + reviewed: Boolean! + sum: Decimal + supplierCustomerNumberTxt: String + supplierId: Int + supplierIndustryTypeId: Short + supplierNumberTxt: String + syncRetry: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_PostProcessNeeded: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + voucherNumber: String + externalSystemSupplierInvoices(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceSet + productNotes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteSet + supplierInvoiceAttachments(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceAttachmentSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + enum_SupplierInvoiceStatus: Enum_SupplierInvoiceStatus + industryType: IndustryType + supplier: Supplier + supplierIndustryType: SupplierIndustryType +} + +type SupplierInvoiceAttachment { + supplierInvoiceAttachmentId: Int! + attachmentId: Int! + supplierInvoiceId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + attachment: Attachment + supplierInvoice: SupplierInvoice +} + +type SupplierInvoiceLine { + supplierInvoiceLineId: Int! + assignmentId: Int + assignmentNumberTxt: String + costPrice: Decimal + costPricePurchaseAgreement: Decimal + customerId: Int + customerNumberTxt: String + departmentId: Short + departmentNumberTxt: String + dimensionValueId_1: Int + dimensionValueTxt_1: String + doNotForwardInvoice: Boolean! + fallbackValueUsed: Boolean! + ledgerAccountId: Short + ledgerAccountNumberTxt: String + lineNumber: Int + productId: Int + productName: String + productNumberTxt: String + productSupplierIndustryTypeId: Int + projectAccountId: Int + projectAccountNumberTxt: String + quantity: Decimal + sortOrder: Int + storageId: Short + storageNumberTxt: String + supplierInvoiceId: Int! + surchargePercent: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + vATRateId: Short + vatRateTxt: String + externalSystemSupplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemSupplierInvoiceLineSet + productNoteLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + assignment: Assignment + customer: Customer + department: Department + dimensionValue_1: DimensionValue + ledgerAccount: LedgerAccount + product: Product + productSupplierIndustryType: ProductSupplierIndustryType + storage: Storage + supplierInvoice: SupplierInvoice + vATRate: VATRate +} + +type SupplierInvoiceProductMatch { + supplierInvoiceProductMatchId: Int! + description: String + doNotForwardInvoice: Boolean! + industryTypeId: Short + productNumberTxt: String + supplierId: Int + supplierIndustryTypeId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + target_ProductName: String + target_ProductSupplierIndustryTypeId: Int! + vATRateId: Short + industryType: IndustryType + supplier: Supplier + supplierIndustryType: SupplierIndustryType + target_ProductSupplierIndustryType: ProductSupplierIndustryType + vATRate: VATRate +} + +type SystemMessage { + systemMessageId: Int! + editUrlTextId: String + enum_RowStateId: ID! + enum_SystemMessageSourceId: ID! + internalErrorId: String + isSummary: Boolean! + mergeField1: String + mergeField2: String + mergeField3: String + mergeField4: String + mergeValue1: String + mergeValue2: String + mergeValue3: String + mergeValue4: String + rawMessage: String + rowId: Long! + rowId2: Long + summary_AssignmentId: Long + summary_ProductNoteId: Long + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + tableName: String! + textId: String + enum_RowState: Enum_RowState + enum_SystemMessageSource: Enum_SystemMessageSource +} + +type SystemNotification { + systemNotificationId: Int! + detailDescriptionURL: String + entityNavigationURL: String + enum_NotificationTypeId: ID! + isDone: Boolean! + isImportant: Boolean! + isReadByUser: Boolean! + isTask: Boolean! + message: String! + showFromUTC: DateTime + showNotification: Boolean + showToUTC: DateTime + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + title: String! + enum_NotificationType: Enum_NotificationType +} + +type Team { + teamId: Short! + name: String! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + teamNumber: Int + teamEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): TeamEmployeeSet +} + +type TeamEmployee { + teamEmployeeId: Short! + employeeId: Int! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + teamId: Short! + employee: Employee + team: Team +} + +type Temp_SpeedyCraftSyncEvent { + temp_SpeedyCraftSyncEventId: Int! + assignmentId: Int + createOperation: Boolean! + rowId: Long + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + tableName: String +} + +type Temp_WebhookMessage { + temp_WebhookMessageId: Int! + createOperation: Boolean! + rowId: Long + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + tableName: String + webhookSubscriptionId: Short! +} + +type User { + userId: Int! + defaultLanguage: String + email: String + employeeId: Int + firstName: String + fullName: String + isClientAdmin: Boolean! + isInactive: Boolean! + lastName: String + secondaryEmail: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + contactMessages(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactMessageSet + userRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserRoleSet + stockCounts_UpdatedByUser(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountSet + stockCounts_CreatedByUser(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockCountSet + stockTransactions_UpdatedByUser(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + stockTransactions_CreatedByUser(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): StockTransactionSet + view_StockTransactions_UpdatedByUser(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + view_StockTransactions_CreatedByUser(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_StockTransactionSet + view_UserPermissions_User(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): View_UserPermissionSet + employee: Employee + view_User: View_User +} + +type UserCommand { + userCommandId: Short! + context: String + cwUserId: Int + description: String + enum_CommandId: ID! + parameter: String + shortCutKey: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + toolbarIcon: String + enum_Command: Enum_Command +} + +type UserRole { + userRoleId: Int! + roleId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + userId: Int! + externalSystemUserRoles(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemUserRoleSet + role: Role + user: User +} + +type VATRate { + vATRateId: Short! + code: String + defaultUnknown_ProductSupplierIndustryTypeId: Int + description: String! + ratePercent: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemVATRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemVATRateSet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + products(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSet + settings_ProductImports(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): Settings_ProductImportSet + supplierInvoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceLineSet + supplierInvoiceProductMatchs(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): SupplierInvoiceProductMatchSet +} + +type View_Appointment { + appointmentId: Int! + appointmentUpdatedBy: Int! + appointmentUpdatedDateUTC: DateTime! + assignmentId: Int + assignmentJobResponsible: String + assignmentNumber: Int + assignmentStatus: String! + comment: String + description: String + durationInMinutes: Int + employeeId: Int! + endDateTimeUTC: DateTime! + fullName: String! + startDateTimeUTC: DateTime! + sys_Deactivated: Boolean! + sys_RowState: String! +} + +type View_Assignment { + assignmentId: Int! + assignmentCompleteDateTimeUTC: DateTime + assignmentFixedPriceAmount: Decimal + assignmentNumber: Int + bankReserve: Decimal + calculatedCoverageAmount: Decimal + calculatedCoverageAmount_Diff: Decimal + calculatedCoverageAmount_Prev: Decimal + calculatedCoveragePercent: Decimal + calculatedCoveragePercent_Diff: Decimal + calculatedCoveragePercent_Prev: Decimal + calculatedIncomeFixedPrice: Decimal + calculatedIncomeNotFixedPrice: Decimal + calculatedIncomeTotal: Decimal + caseHandlerEmployeeNumber: Int + caseHandlerFullName: String + combined_AssignmentNumber_Name: String + completedLast30Days: Int! + costOther: Decimal + costOtherBudget: Decimal + costOtherDifference: Decimal + costOtherFixedPrice: Decimal + costOtherNotFixedPrice: Decimal + costProductDifference: Decimal + costProducts: Decimal + costProductsBudget: Decimal + costProductsFixedPrice: Decimal + costProductsManualFixedPrice: Decimal + costProductsManualNotFixedPrice: Decimal + costProductsNotFixedPrice: Decimal + costService: Decimal + costServiceBudget: Decimal + costServiceDifference: Decimal + costServiceFixedPrice: Decimal + costServiceNotFixedPrice: Decimal + costSum: Decimal + costSumBudget: Decimal + costSumDifference: Decimal + costSumFixedPrice: Decimal + costSumNotFixedPrice: Decimal + coverage: Decimal + coverageRateFixedPrice: Decimal + coverageRateNotFixedPrice: Decimal + customerName: String + customerNumber: Int + departmentId: Short + dimensionFixedPriceAmount: Decimal + enum_AssignmentStatusId: ID! + errorCount: Int + estimatedHours: Decimal + expectedIncome: Decimal + expectedIncomeByJobResponsible: Decimal + fixedPriceAmount: Decimal + grossMargin: Decimal + hasErrors: Int! + hasNoActivity: Int! + includeInSummaryReport: Boolean + incomeOtherBudget: Decimal + incomeOtherDifference: Decimal + incomeOtherDifferenceVsExpected: Decimal + incomeProductsBudget: Decimal + incomeProductsDifference: Decimal + incomeProductsDifferenceVsExpected: Decimal + incomeServiceBudget: Decimal + incomeServiceDifference: Decimal + incomeServiceDifferenceVsExpected: Decimal + incomeTotalOther: Decimal + incomeTotalProducts: Decimal + incomeTotalService: Decimal + incomeTotalSum: Decimal + interimInvoiced: Decimal + internalReference: String + invoicedFixedPrice: Decimal + invoicedFixedPriceRule: Decimal + invoicedNotFixedPrice: Decimal + invoicedOther: Decimal + invoicedProducts: Decimal + invoicedService: Decimal + invoicedSum: Decimal + invoicedSum_Prev: Int! + invoicedVariousFixedPrice: Decimal + invoicedVariousNotFixedPrice: Decimal + invoiceLastRegisteredUTC: Date + invoiceLine_Count: Int + invoiceReserveAdjustmentAmount: Decimal + invoiceReserveAdjustmentAmount_Prev: Decimal + invoiceReserveAdjustmentComment: String + invoiceReserveAmount: Decimal + invoiceReserveAmount_Prev: Decimal + invoiceReserveCalculatedAmount: Decimal + invoicingCoverage: Decimal + invoicingGrossMargin: Decimal + invoicingOther: Decimal + invoicingPerHour: Decimal + invoicingProducts: Decimal + invoicingService: Decimal + invoicingServiceSpent: Decimal + invoicingSum: Decimal + invoicingSumNotFixedPrice: Decimal + invoicingWork: Decimal + isCaseHandler: Boolean + isClosed: Int! + isExpired: Int! + isInProgress: Int! + isJobResponsibleCompleted: Int! + isNotEstimated: Int! + isNotOptimized: Int! + isNotStarted: Int! + noActivityLast7Days: Int! + perHour: Decimal + productLastRegisteredUTC: DateTime + productNoteLine_Count: Int + productNoteLineErrors: Int + projectId: Int + registeredBy_FullName: String + remainingToInvoiceFixedPriceAmount: Decimal + service_Count: Int + serviceErrors: Int + serviceLastRegisteredUTC: DateTime + serviceSpent: Decimal + serviceSpentBudget: Decimal + serviceSpentDifference: Decimal + speedyCraftExternalId: Int + subcontractors: Decimal + subInvoiced: Decimal + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + totalAppointments: Int + updatedDateUTC: DateTime + workPlace: String + assignments_View_Assignment(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet +} + +type View_AssignmentContact { + contactId: Int! + assignmentId: Int + customerId: Int + email: String + invoiceSendAttachment: Boolean! + invoiceSendCopy: Boolean! + isDuplicate: Boolean + isMainContact: Boolean + mobile: String + name: String + phone: String + sys_Deactivated: Boolean! + title: String + contacts_View_AssignmentContact(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactSet +} + +type View_AssignmentDimension { + dimensionId: Int! + assignmentId: Int + syncToMobileDevice: Boolean! + useOnProductNoteLine: Boolean! + useOnService: Boolean! +} + +type View_AssignmentDimensionValue { + dimensionValueId: Int! + assignment_HasActiveAssignmentLevelDimension: Boolean + assignment_SyncToMobileDevice: Boolean! + assignmentId: Int + code: String + completed: Boolean! + dimensionId: Int! + dimensionValue_SyncToMobileDevice: Boolean! + name: String! + selectable: Boolean! + sys_Deactivated: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowVersion: Long! + externalSystemDimensionValues_View_AssignmentDimensionValue(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemDimensionValueSet +} + +type View_AttachmentWithSync { + assignmentId: Int! + attachmentCategoryDescription: String + attachmentCategoryId: Short + attachmentId: Int! + azureBlobId: String + boligmappaAttachmentCount: Int + description: String! + fileName: String! + internal: Boolean! + revisionNumber: Short! + sourceExternalSystemId: Short + sourceType: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: Short! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + uri: String +} + +type View_BoligmappaAttachment { + combinedKey: String + assignmentId: Int! + attachmentCategoryDescription: String + attachmentCategoryId: Short + attachmentId: Int + azureBlobId: String + boligmappaAttachmentId: Int + boligmappaFileId: Int + boligmappaNumber: String + description: String + fileChecksum: String + fileName: String + industryType: String + internal: Boolean + isDeletedInBoligmappa: Int + productId: Int + revisionNumber: Short + sourceExternalSystemId: Short + sourceType: String + syncToMobileDevice: Boolean + sys_CreatedBy: Int + sys_CreatedDateUTC: DateTime + sys_Deactivated: Boolean + sys_DeleteLock: Boolean + sys_Historic: Boolean + sys_Incomplete: Boolean + sys_RowState: Short + sys_UpdatedBy: Int + sys_UpdatedDateUTC: DateTime + uploadedByBmUserId: String + uploadedUTC: DateTime + uri: String + useCommonBlobStore: Boolean +} + +type View_ConsumptionStatistics { + month: String! + appointmentCount: Int + assignmentCount: Int + attachmentCount: Int + productNoteLineCount: Int + serviceCount: Int +} + +type View_CustomerContact { + contactId: Int! + assignmentId: Int + customerId: Int + email: String + invoiceSendAttachment: Boolean! + invoiceSendCopy: Boolean! + isDuplicate: Boolean + isMainContact: Boolean + mobile: String + name: String + phone: String + sys_Deactivated: Boolean! + title: String + contacts_View_CustomerContact(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ContactSet +} + +type View_CustomerInvoice { + invoiceId: Int! + assignmentId: Int + assignmentNumber: Int + caseHandler_EmployeeName: String + customerName: String + dueDate: Date + grossAmount: Decimal + invoiceDate: Date + invoiceNumber: Int + invoiceStatusTextId: String! + isCreditNote: Boolean! + isFinalInvoice: Boolean! + netAmount: Decimal + remainingAmount: Decimal + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_RowState: String! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + updatedByUserName: String +} + +type View_DimensionValueWithDimensionLevel { + dimensionValueId: Int! + dimensionId: Int + enum_DimensionLevelId: ID! + sys_Deactivated: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowVersion: Long! + productNoteLines_View_DimensionValueWithDimensionLevel_1(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLines_View_DimensionValueWithDimensionLevel_2(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLines_View_DimensionValueWithDimensionLevel_3(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLines_View_DimensionValueWithDimensionLevel_4(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLines_View_DimensionValueWithDimensionLevel_5(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + productNoteLines_View_DimensionValueWithDimensionLevel_6(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet + services_View_DimensionValueWithDimensionLevel_1(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + services_View_DimensionValueWithDimensionLevel_2(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + services_View_DimensionValueWithDimensionLevel_3(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + services_View_DimensionValueWithDimensionLevel_4(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + services_View_DimensionValueWithDimensionLevel_5(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + services_View_DimensionValueWithDimensionLevel_6(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet +} + +type View_Employee { + employeeId: Int! + sumQuantity: Decimal + employees_View_Employee(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): EmployeeSet +} + +type View_EmployeesForAssignment { + assignmentId: Int + costValue: Decimal + count: Decimal + employeeId: Int! + employeeNumber: Int + fullName: String! + invoiced: Decimal + invoiceValue: Decimal + notForInvoicingMoved_Count: Int + readyForInvoicing: Decimal + sys_Deactivated: Boolean + sys_RowState: String! + total_Count: Int +} + +type View_IntPricesAndProduct { + productSupplierIndustryTypeId: Int! + costPrice: Decimal + customerPrice: Decimal + fullProductNumber: String + gTIN: Long + inactive: Boolean + industryTypeDescription: String + industryTypeNumber: Short + isVarious: Boolean + listPrice: Decimal + product_Sys_Deactivated: Boolean + productId: Int + productName: String + productNumber: String + productSupplierIndustryType_Sys_Deactivated: Boolean! + supplierIndustryTypeId: Short + unit: String +} + +type View_InvoiceLine { + invoiceLineSessionId: Int! + combined_DimensionValueId_Name: String + combined_InvoiceLineRuleCode_Description: String + costPrice: Decimal + enum_InvoiceLineRuleTypeDetailId: ID + enum_InvoiceLineRuleTypeId: ID + fieldAttributesByJSON: String + industryTypeId: Short + invoiceId: Int + invoiceLineCode: String + invoiceLineId: Int + invoiceLineRuleId: Int + invoiceLineText: String + invoiceLineTypeId: Short + invoicingDimensionValueId: Int + productSupplierIndustryTypeId: Int + quantityInvoice: Decimal + salesPriceInvoice: Decimal + sessionId: String + sortOrder: Int + sourceProductNoteLineIds: String + sourceServiceIds: String + storageDescription: String + storageId: Int + supplierIndustryTypeId: Short + supplierIndustryTypeName: String + surchargePercentInvoice: Decimal + sys_Deactivated: Boolean + sys_RowState: String! + updateAssignmentCost: Boolean! + updateStock: Boolean! +} + +type View_InvoiceLineRule { + invoiceLineRuleId: Short! + combined_InvoiceLineRuleCode_Description: String! + cost_ProjectAccountId: Int + costPrice: Decimal + description: String! + enum_InvoiceLineRuleTypeDetailId: ID! + enum_InvoiceLineRuleTypeId: ID! + externalInvoiceLineCode: String + income_ProjectAccountId: Int + invoiceLineRuleCode: String! + invoiceLineRuleTypeDetailTextId: String! + invoiceLineRuleTypeTextId: String! + invoiceLineTextEditable: Boolean! + itemDescription: String + notUseOnFixedPrice: Boolean! + priceOnly: Boolean! + sale_VATFree_LedgerAccountId: Short + sale_VATRequired_LedgerAccountId: Short + salesPrice: Decimal + shortCutDescription: String + shortCutKey: String + surchargePercent: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_RowState: Short! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + toolbarIcon: String + vATRateId: Short + wageCodeReportCategoryId: Int +} + +type View_InvoiceLineRuleType { + invoiceLineRuleTypeDetailId: Short! + detail_TextId: String! + enum_InvoiceLineRuleTypeDetailId: ID! + enum_InvoiceLineRuleTypeId: ID! + textId: String! +} + +type View_InvoicesForAssignment { + invoiceId: Int! + assignmentId: Int + attachmentNumber: Int + attachServiceListAsPDF: Boolean! + balanceAmount: Decimal + customerId: Int! + customerName: String + departmentId: Short + disableCreditNote: Boolean + dueDate: Date + grossAmount: Decimal + hasPdf: Boolean + invoiceDate: Date + invoicedDate: Date + invoiceNumber: Int + invoiceStatusId: Short! + invoiceStatusText: String! + invoiceType: String! + isCreditNote: Boolean! + isFinalInvoice: Boolean! + netAmount: Decimal + parentInvoiceId: Int + paymentTermId: Short + pdfLocation: Int + projectId: Int + registrationDate: Date + remainingAmount: Decimal + sys_Deactivated: Boolean! + sys_Historic: Boolean! + sys_RowState: String! + vATFree: Boolean! +} + +type View_LookupAssignment { + assignmentId: Int! + assignmentNumber: Int + combined_AssignmentNumber_Name: String + customerName: String + assignments_View_LookupAssignment(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): AssignmentSet +} + +type View_MOM { + assignmentId: Int + assignmentMomId: Int + hasMomDocument: String! + hasUserManualDocument: String! + industryType: String + pNL_Quantity: Decimal + pNL_QuantityInvoice: Decimal + productId: Int + productName: String + productNumber: String + selected: Boolean + selected_UserManual: Boolean + sys_Deactivated: Boolean + wholesaler: String +} + +type View_ProductNoteLine { + productNoteLineId: Int! + amount: Decimal + coverage: Decimal + invoiceAmount: Decimal + productNoteId: Int! + productNoteLines_View_ProductNoteLine(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductNoteLineSet +} + +type View_ProductNoteLinePriceUpdate { + customerPrice: Decimal + assignmentId: Int + costPrice: Decimal + enum_CostPriceSourceId: ID! + enum_InvoicingLineStatusId: ID! + listPrice: Decimal + percentageChangeInCostPrice: Decimal + percentageChangeInSalesPriceInvoice: Decimal + productNoteLineId: Int! + productNoteLineRowState: Short! + quantity: Decimal + quantityInvoice: Decimal + salesPriceInvoice: Decimal + suggestedCostPrice: Decimal + suggestedSalesPriceInvoice: Decimal + surchargePercentInvoice: Decimal +} + +type View_ProductSupplierIndustryTypeWithPrice { + productSupplierIndustryTypeId: Int! + cost_ProjectAccountDescription: String + cost_ProjectAccountId: Int + costPrice: Decimal + costPriceOverride: Decimal + customerPrice: Decimal + discountGroupCode: String + discountGroupId: Int + enum_BoligmappaIndustryTypeId: ID + inactive: Boolean + income_ProjectAccountDescription: String + income_ProjectAccountId: Int + isCustom: Boolean + isVarious: Boolean + listPrice: Decimal + note: String + priceOnly: Boolean + productId: Int + productName: String + productNumber: String + purchase_VATFree_Description: String + purchase_VATFree_LedgerAccountId: Short + purchase_VATRequired_Description: String + purchase_VATRequired_LedgerAccountId: Short + sale_VATFree_Description: String + sale_VATFree_LedgerAccountId: Short + sale_VATRequired_Description: String + sale_VATRequired_LedgerAccountId: Short + supplierIndustryTypeId: Short + supplierIndustryTypeName: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + unit: String + vatRateDescription: String + vATRateId: Short + productSupplierIndustryTypes_View_ProductSupplierIndustryTypeWithPrice(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProductSupplierIndustryTypeSet + productSupplierIndustryType: ProductSupplierIndustryType +} + +type View_ProjectAccountsForBudget { + projectAccountId: Int! + projectAccount: String! + projectAccountCategoryEnum: String! + projectAccounts_View_ProjectAccountsForBudget(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectAccountSet +} + +type View_ProjectReportDetail { + projectReportDetailId: Short! + combined_NumberDescription_From: String + combined_NumberDescription_To: String + fromDescription: String + toDescription: String + projectReportDetails_View_ProjectReportDetail(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ProjectReportDetailSet +} + +type View_Service { + serviceId: Int! + approvalComment: String + assignmentId: Int + cost_LedgerAccountId: Short + cost_ProjectAccountId: Int + costPrice: Decimal + costPriceSurcharge: Decimal! + costPriceSurchargePercent: Decimal + costSurcharge_ProjectAccountId: Int + createdFrom_ServiceId: Int + departmentId: Short + dimensionValueId_1: Int + dimensionValueId_2: Int + dimensionValueId_3: Int + dimensionValueId_4: Int + dimensionValueId_5: Int + dimensionValueId_6: Int + employeeId: Int! + employeeInvoiceCategoryId: Short + endDateTimeUTC: DateTime + enum_InvoicingLineStatusId: ID! + enum_WageCodeInvoiceRuleId: ID! + enum_WagePeriodStatusId: ID! + income_LedgerAccountId: Short + income_ProjectAccountId: Int + invoice_ApprovalEmployeeId: Int + invoice_Enum_ApprovalStatusId: ID! + invoiceDescription: String + invoiceId: Int + invoiceLineId: Int + jobCategoryId: Short + movedFromAssignmentId: Int + movedToAssignmentId: Int + pieceworkNumber: Int + projectPeriodId: Int + quantity: Decimal! + quantityInvoice: Decimal + salesPrice: Decimal! + salesPriceInvoice: Decimal + serviceComment: String + speedyCraftExternalId: Int + startDateTimeUTC: DateTime! + startDateUTC: Date + syncToMobileDevice: Boolean! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_NextWageCodeProcessed: Boolean! + sys_RowState: Short! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wage_ApprovalEmployeeId: Int + wage_Enum_ApprovalStatusId: ID! + wageCodeId: Short + wageCodeName: String + wageCodeReportCategoryId: Int + wagePeriodId: Int + weekNumber: Int + services_View_Service(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet +} + +type View_SpeedycraftProductSupplierIndustryTypeWithPrice { + productNumber: String + costPrice: Decimal + customerPrice: Decimal + externalSystemProductId: Int + externalSystemProductSupplierIndustryTypeId: Int + fullProductNumber: String + inactive: Boolean + isVarious: Boolean + listPrice: Decimal + note: String + priceOnly: Boolean + product_Sys_Deactivated: Boolean + productExternalId: String + productId: Int + productName: String + productSupplierIndustryTypeExternalId: String + productSupplierIndustryTypeId: Int! + supplierIndustryTypeId: Short + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + unit: String +} + +type View_Stock { + stockId: Int! + productId: Int! + quantity: Decimal + quantityMax: Decimal + quantityMin: Decimal + quantityMOQ: Decimal + quantityOnOrder: Decimal + restockSuggestion: Decimal + stockAverageCostPrice_ComputedWithStorageMode: Decimal + stockValue_ComputedWithStorageMode: Decimal + storageId: Short! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + product: Product + storage: Storage +} + +type View_StockCountLine_Counted { + stockCountLineId: Int! + countDoneUTC: DateTime + counted: Decimal + createdBy_FullName: String + description: String! + employeeId: Int + productId: Int + productName: String + productNumber: String! + stock_Quantity: Decimal + stockCountId: Int + storageId: Short + sys_Deactivated: Boolean! + totalCounted: Decimal + employee: Employee +} + +type View_StockCountLine_MyCounting { + stockCountLineId: Int + countDoneUTC: DateTime + counted: Decimal + description: String! + employeeId: Int + productId: Int + productName: String + productNumber: String! + stock_Quantity: Decimal + stockCountId: Int + storageId: Short + sys_Deactivated: Boolean! + totalCounted: Decimal +} + +type View_StockCountLine_NotCounted { + stockCountLineId: Int + countDone: Int + counted: Int + description: String! + employeeId: Int + productId: Int! + productName: String + productNumber: String! + stock_Quantity: Decimal + stockCountId: Int + storageId: Short! + sys_Deactivated: Boolean! + totalCounted: Int +} + +type View_StockCountLine_TotalCount { + storageId: Short + description: String! + productId: Int + productName: String + productNumber: String! + quantity_Regulation: Decimal + stock_Quantity: Decimal + sys_Deactivated: Boolean + totalCounted: Decimal +} + +type View_StockTransaction { + productId: Int + assignmentId: Int + averageCostPrice: Decimal + averageCostPriceFIFO: Decimal + comment: String + costPrice: Decimal + customerId: Int + enum_StockTransactionOriginId: ID + movedFromStorageId: Short + movedToStorageId: Short + productSupplierIndustryTypeId: Int + quantity: Decimal + registeredBy_EmployeeId: Int + stockAverageCostPrice_ComputedWithStorageMode: Decimal + storageId: Short + sys_CreatedBy: Int + sys_CreatedDateUTC: DateTime + sys_Deactivated: Boolean + sys_UpdatedBy: Int + sys_UpdatedDateUTC: DateTime + totalStockQuantity: Decimal + product: Product + storage: Storage + productSupplierIndustryType: ProductSupplierIndustryType + updatedByUser: User + createdByUser: User + enum_StockTransactionOrigin: Enum_StockTransactionOrigin + assignment: Assignment + customer: Customer + registeredBy_Employee: Employee +} + +type View_StockTransactionByDate { + storageId: Short! + productId: Int + sys_Deactivated: Int! + totalStockQuantity: Decimal + transactionDateUTC: Date +} + +type View_StockTransactionSummary { + storageId: Short! + costValueSoldQ1: Decimal + costValueSoldQ1_PreviousYear: Decimal + costValueSoldQ2: Decimal + costValueSoldQ2_PreviousYear: Decimal + costValueSoldQ3: Decimal + costValueSoldQ3_PreviousYear: Decimal + costValueSoldQ4: Decimal + costValueSoldQ4_PreviousYear: Decimal + lastTransactionDateUTC: DateTime + productId: Int + refillQuantityLast30Days: Decimal + sys_Deactivated: Int! + withdrawalQuantityLast30Days: Decimal +} + +type View_Storage { + storageId: Short! + balance_LedgerAccountId: Short + countInProgress: Boolean! + description: String! + lastCountDoneUTC: DateTime + lastFullCountDoneUTC: DateTime + profitAndLoss_LedgerAccountId: Short + responsibleEmployeeId: Int + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + totalStorageValue: Decimal + responsibleEmployee: Employee + balance_LedgerAccount: LedgerAccount + profitAndLoss_LedgerAccount: LedgerAccount +} + +type View_SupplierIndustryType_ProductUsage { + supplierIndustryTypeId: Short + activeProductCount: Int + inactiveProductCount: Int + lastInvoiced: Date + lastUsed: Date + lastUsedOnSupplierInvoice: Date + name: String + number: Short + onlyStockSource_ProductCount: Int + onlyStockSource_ProductCountInUse: Int + onlyStockSource_ProductCountInUseLast12Months: Int + productCountInUse: Int + productCountInUseLast12Months: Int + productCountInUseOnSupplierInvoice: Int + productCountInUseOnSupplierInvoiceLast12Months: Int +} + +type View_SupplierIndustryTypeFileSpec { + supplierIndustryTypeFtpInfoId: Short! + autoImport: Boolean! + directoryPath: String + downloadedDateTimeUTC: DateTime + enum_ImportFormatId: ID! + enum_ImportStatusId: ID + enum_ImportTypeId: ID! + fileMask: String + importedDateTimeUTC: DateTime + password: String + server: String + supplierIndustryTypeId: Short! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_UpdatedDateUTC: DateTime! + userName: String +} + +type View_SupplierInvoice { + supplierInvoiceId: Int! + assignmentId: Int + assignmentNumber: Int + customerName: String + invoiceNumber: String + isCreditNote: Boolean! + lineCount: Short + reviewed: Boolean! + sum: Decimal + sumCostPricePurchaseAgreement: Decimal + sumDifference: Decimal + sumDifferencePercentage: Decimal + supplierIndustryTypeName: String + supplierName: String + syncRetry: Boolean! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_RowState: String! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + updatedByUserName: String +} + +type View_SupplierInvoiceLine { + supplierInvoiceLineId: Int! + assignmentId: Int + assignmentNumber: Int + costDifferencePercentage: Decimal + costPrice: Decimal + costPriceDifference: Decimal + costPricePurchaseAgreement: Decimal + customerId: Int + customerName: String + departmentId: Short + doNotForwardInvoice: Boolean! + fallbackValueUsed: Boolean! + ledgerAccountId: Short + lineNumber: Int + productId: Int + productName: String + productNumber: String + productNumberTxt: String + productSupplierIndustryTypeId: Int + quantity: Decimal + storageDescription: String + storageId: Short + supplierInvoiceId: Int! + surchargePercent: Decimal + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_RowState: String! + vATRateId: Short + vatRateTxt: String +} + +type View_User { + userId: Int! + defaultLanguage: String + email: String + employeeId: Int + firstName: String + isClientAdmin: Boolean! + isInactive: Boolean! + isPayrollUser: Boolean + lastName: String + secondaryEmail: String + sys_CreatedBy: Int! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_RowState: Short! + users_View_User(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): UserSet +} + +type View_UserPermission { + userId: Int! + description: String + isForFrontend: Boolean + name: String + permissionId: Short + reportIfMissing: Boolean + user: User + permission: Permission +} + +type View_WageCode { + wageCodeId: Short! + sumQuantity: Decimal + wageCodes_View_WageCode(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet +} + +type View_WageCodeReportCategoryForBudget { + wageCodeReportCategoryId: Int! + description: String! + wageCodeReportCategories_View_WageCodeReportCategoryForBudget(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeReportCategorySet +} + +type View_WageCodesForAssignment { + assignmentId: Int + costValue: Decimal + count: Decimal + invoiced: Decimal + invoiceValue: Decimal + notForInvoicingMoved_Count: Int + readyForInvoicing: Decimal + sys_Deactivated: Boolean + sys_RowState: String! + total_Count: Int + wageCodeId: Short + wageCodeName: String! + wageCodeNumber: Int! +} + +type View_WagePeriod { + wagePeriodId: Int! + linesNotApproved: Int + wagePeriods_View_WagePeriod(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WagePeriodSet +} + +type WageCode { + wageCodeId: Short! + approveRequired: Boolean! + assignmentUpdate: Boolean! + combined_WageCodeNumber_WageCodeName: String + cost_ProjectAccountId: Int + costSurcharge_ProjectAccountId: Int + enum_PieceworkTypeId: ID! + enum_WageCodeInvoiceRuleId: ID! + enum_WageCodeTypeId: ID! + fieldsolutionServiceExport: Boolean! + isWorkTime: Boolean! + payrollExport: Boolean! + pieceworkActive: Boolean! + priceOnly: Boolean! + quantityOnly: Boolean! + surchargePercent: Decimal! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageCodeName: String! + wageCodeNumber: Int! + wageCodeReportCategoryId: Int + wageGroupId: Short + wageRatePercent: Decimal + externalSystemWageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + serviceAgreementDetails(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceAgreementDetailSet + wageRateEmployeeNext_WageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateEmployeeSet + wageRateEmployeeWageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateEmployeeSet + cost_ProjectAccount: ProjectAccount + costSurcharge_ProjectAccount: ProjectAccount + enum_PieceworkType: Enum_PieceworkType + enum_WageCodeInvoiceRule: Enum_WageCodeInvoiceRule + enum_WageCodeType: Enum_WageCodeType + wageCodeReportCategory: WageCodeReportCategory + wageGroup: WageGroup + view_WageCode: View_WageCode +} + +type WageCodeReportCategory { + wageCodeReportCategoryId: Int! + description: String! + reportText: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageCodeReportCategoryNumber: Short! + wageCodeReportCategoryTypeId: Short + budgetLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): BudgetLineSet + externalSystemWageCodeReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategorySet + invoiceLines(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineSet + invoiceLineRules(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): InvoiceLineRuleSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + wageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet + wageCodeReportCategoryType: WageCodeReportCategoryType + view_WageCodeReportCategoryForBudget: View_WageCodeReportCategoryForBudget +} + +type WageCodeReportCategoryType { + wageCodeReportCategoryTypeId: Short! + description: String! + reportText: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemWageCodeReportCategoryTypes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageCodeReportCategoryTypeSet + wageCodeReportCategories(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeReportCategorySet +} + +type WageGroup { + wageGroupId: Short! + combined_WageGroupNumber_WageGroupName: String + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageGroupName: String! + wageGroupNumber: Short + externalSystemWageGroups(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageGroupSet + wageCodes(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageCodeSet + wageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): WageRateSet +} + +type WagePeriod { + wagePeriodId: Int! + combined_Year_Number: Int + description: String! + endDateUTC: Date + enum_WagePeriodStatusId: ID! + periodNumber: Short! + periodYear: Short! + projectPeriodFromTimeRegistration: Boolean! + projectPeriodId: Int + startDateUTC: Date! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + externalSystemWagePeriods(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWagePeriodSet + services(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ServiceSet + enum_WagePeriodStatus: Enum_WagePeriodStatus + projectPeriod: ProjectPeriod + view_WagePeriod: View_WagePeriod +} + +type WageRate { + wageRateId: Short! + comment: String + jobCategoryId: Short + projectCost: Decimal + projectId: Int + rate: Decimal! + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + wageGroupId: Short! + externalSystemWageRates(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateSet + jobCategory: JobCategory + project: Project + wageGroup: WageGroup +} + +type WageRateEmployee { + wageRateEmployeeId: Short! + assignmentId: Int + employeeId: Int! + next_WageCodeId: Short + projectId: Int + quantity: Decimal + rate: Decimal + sys_CreatedBy: Int! + sys_CreatedDateUTC: DateTime! + sys_Deactivated: Boolean! + sys_DeleteLock: Boolean! + sys_Historic: Boolean! + sys_Incomplete: Boolean! + sys_RowState: ID! + sys_RowVersion: Long! + sys_UpdatedBy: Int! + sys_UpdatedDateUTC: DateTime! + view_WageRateClient: Decimal + wageCodeId: Short! + externalSystemWageRateEmployees(skip: Int take: Int top: Int filter: String orderBy: [OrderByGraph]): ExternalSystemWageRateEmployeeSet + assignment: Assignment + employee: Employee + next_WageCode: WageCode + project: Project + wageCode: WageCode +} + +enum ApprovalStatusEnum { + "0 Awaiting approval" + Waiting + "1 Approved OK" + Approved + "2 Rejected in approval" + Rejected +} + +enum AssignmentProgressEnum { + "0 Ikke påbegynt" + NotStarted + "1 Arbeidsordre skrevet" + WorkOrderWritten + "2 Sent til hpc" + SentToHpc + "3 Registrering av timer og materiell foretatt" + TimeMatRegistered + "4 Faktura registrert" + InvoiceRegistered + "5 Delfakturert" + PartiallyInvoiced + "6 Delfakturert ny Registrering" + PartiallyInvoicedNewRegister + "7 Delfakturert faktura registrert" + PartiallyInvoicedInvoiceRegistered + "8 Avsluttet" + Completed +} + +enum AssignmentStatusEnum { + "0 Ikke påbegynt" + NotStarted + "1 I arbeid" + InProgress + "8 Expired" + Expired + "9 Avsluttet" + Completed +} + +enum AssignmentTypeEnum { + "0 Vanlig ordre" + Normal + "1 Serviceordre" + Service + "9 Internordre" + Internal +} + +enum AttachmentCategoryEnum { + "0 User defined" + Custom + "1 Management, Operations and Maintenance (Norwegian: FDV, forvaltning, drift og vedlikehold)" + MOM + "2 Tender or bid" + Tender +} + +enum BoligmappaIndustryTypeEnum { + "0 Udefinert" + Undefined + "1 Elektriker" + Electrician + "2 Rørlegger" + Plumber + "3 Rådgivende ingeniør" + AdvisingEngineer + "4 Snekker\/Tømrer" + Carpenter + "5 Maler\/Tapetserer" + Painter + "6 Murer\/Flislegger" + Mason + "7 Tak\/Blikkenslager" + Tinsmith + "8 Entreprenør" + Contractor + "9 Takst" + Appraisal + "10 Eiendomsmegler" + RealEstateAgent + "11 Forsikring" + Insurance + "12 Arkitekt" + Architect + "13 Boligprodusent" + HousingProducer + "14 Byggmester" + Builder + "15 Anleggsgartner" + LandscapingGardener + "16 Ventilasjon\/Kulde" + Ventilation + "17 Stat\/Kommune" + Government + "18 Det lokale elektrisitetstilsyn" + LocalElectricityAuthority + "19 Maskinentreprenør" + MachineContractor + "20 Brann- og feiervesen" + FireAndChimneysweep + "21 Integrasjonspartner" + IntegrationPartner + "22 Leverandør" + Supplier + "23 Produsent" + Producer + "24 Takentreprenør" + RoofContractor + "25 Maskinentreprenør" + MachineContractor2 + "26 Kjøkken" + Kitchen + "27 Trapp" + Stairs + "28 Ventilasjon" + Ventilation2 + "29 Blikkenslager" + Tinsmith2 + "30 Byggevarehandel" + BuildingGoodsStore + "31 Maler" + Painter2 + "32 Telemontør" + TelecomInstaller + "33 Solskjerming\/markiser" + SunShading + "34 Alarm\/sikkerhet" + AlarmsSecurity + "35 Bank" + Banking + "36 Varmepumpe" + HeatPump + "37 Novap" + Novap + "38 Glassmester" + Glazier + "40 Brannsikring" + FireSecurity + "41 Innredning" + Furnishings + "42 Gjerde\/Rekkverk" + Fencing + "43 Sjøentreprenør" + SeaContracting + "44 Port" + Gates + "45 Stasjonære slokkeanlegg" + StationaryExtinguishers +} + +enum ClientLevelEnum { + "0 Not in use for clients, but used for categorizing non-admin roles" + None + "1 Regular client" + Client + "10 Client representing corporate settings copied to clients belonging to the corporation" + Corporate + "98 General settings for all CW clients, copied from a global client" + Global + "99 System intrinsic, can never be changed" + System +} + +enum CommandEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Setting invoice line rule on a specific invoice line" + SetInvoiceLineRule +} + +enum ContractTypeEnum { + "0 Regning," + Billed + "1 Kontrakt \/ Anbud" + Contract + "2 Endringsmelding," + ChangeMessage + "3 Reklamasjon" + Return +} + +enum CostPriceSourceEnum { + "0 Auto generated default value (not set)" + NotSet + "1 This is a real price from an incoming supplier invoice. This is the most correct pricing source available." + SupplierInvoice + "2 Incoming price from a handheld device." + HandheldDevice + "3 The user has manually entered the cost price on the line." + ManualInput + "4 Average price updated when adding items to the stock" + StockAvgUpdOnAdd + "5 The product originated in a stock, and the price was calculated according to the FIFO calculation principle." + StockFIFO + "6 The calculated price from the product list and current agreement" + ProductCatalogue +} + +enum DebtCollectionStatusEnum { + "0 Nei" + NotInUse + "1 Poster" + Invoices + "2 Kunde" + Customer +} + +enum DimensionLevelEnum { + "0 The dimension can be used on all assignments" + Global + "1 Defined on the project level, usable on assignment" + Project + "2 Defined and used on the assignment level only" + Assignment +} + +enum DocumentOriginEnum { + "0 Invoice Manager (Swedish product, no longer in use)" + InvoiceManager + "1 Visma Document Center" + VismaDocCenter +} + +enum EmployeeStatusEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Vanlig" + Regular + "2 Ikke lønn" + Unpaid + "3 Permittert" + TemporarilyLaidOff + "4 Sluttet" + Ended + "5 Midlertidig stopped" + TemporarilyStopped +} + +enum FileDownloadModeEnum { + "0 Download mode will be auto-detected if possible" + AutoDetect + "1 Old legacy FTP servers, transport is not encrypted" + LegacyFTP + "2 SFTP (FTP over SSH), not to be confused with FTPS" + SFTP + "3 Secure FTP (which is a totally separate standard from FTP)" + FTPS +} + +enum ImportFormatEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Standard RS-kalk (Rør)" + RsKalk + "2 Brødrene Dahl" + BrDahl + "3 Comfort" + Comfort + "4 PrisCon" + PrisCon + "5 NELFO versjon 4. This is the most commonly used format in Norway." + Nelfo4 + "6 Br.Dahl xml(vare\/rab.) + Nelfo 4 (autfakt\/best)" + BrDahlXml + "7 Synergo + Nelfo 4 (autfakt\/best)" + Synergo + "9 Egendefinert. Custom format specification (CSV, fixed file or similar)" + Custom +} + +enum ImportFrequencyEnum { + "0 No automatic import" + Manual + "1 Monthly automatic import" + Month + "2 Weekly automatic import" + Week + "3 Daily automatic import" + Day +} + +enum ImportStatusEnum { + "0 Awaiting user input to start the import process" + AwaitingManualApproval + "1 Ready for download and automatic import" + ReadyForDownload + "2 Download is ongoing" + DownloadStarted + "3 Downloaded and stored in our blob store" + Downloaded + "4 Ready for download and automatic import" + ReadyForImport + "5 Started import" + ImportStarted + "6 All OK" + ImportCompletedOK + "7 Some records had errors, but the process is completed successfully" + FailedImport + "8 Failed download" + FailedDownload + "9 The import process failed, no data is imported" + FailedTimeout + "10 Unknown reason for failing" + FailedUnknown + "11 Used for agreement files if products are not imported" + AwaitingProducts +} + +enum ImportTypeEnum { + "0 Automatically determine the correct type. Works for e.g. Nelfo4." + AutoDetect + "1 Fills in Product and ProductSupplierIndustryType" + ProductCatalog + "2 Product agreement for the SupplierIndustryType" + ProductAgreement + "3 Not in use, replaced by EHF (electronic invoice) on ERP system" + Autofakt + "4 Not in use." + PurchaseOrder + "5 Not in use." + PurchaseOrderConfirmation +} + +enum IndustryTypeEnum { + "0 Udefinert" + Undefined + "1 Elektriker" + Electrician + "2 Rørlegger" + Plumber + "3 Rådgivende ingeniør" + AdvisingEngineer + "4 Snekker\/Tømrer" + Carpenter + "5 Maler\/Tapetserer" + Painter + "6 Murer\/Flislegger" + Mason + "7 Tak\/Blikkenslager" + Tinsmith + "8 Entreprenør" + Contractor + "9 Takst" + Appraisal + "10 Eiendomsmegler" + RealEstateAgent + "11 Forsikring" + Insurance + "12 Arkitekt" + Architect + "13 Boligprodusent" + HousingProducer + "14 Byggmester" + Builder + "15 Anleggsgartner" + LandscapingGardener + "16 Ventilasjon\/Kulde" + Ventilation + "17 Stat\/Kommune" + Government + "18 Det lokale elektrisitetstilsyn" + LocalElectricityAuthority + "19 Maskinentreprenør" + MachineContractor + "20 Brann- og feiervesen" + FireAndChimneysweep + "24 Takentreprenør" + RoofContractor + "36 Varmepumpe" + HeatPump + "38 Glassmester" + Glazier + "40 Brannsikring" + FireSecurity + "41 Innredning" + Furnishings + "42 Gjerde\/Rekkverk" + Fencing + "43 Sjøentreprenør" + SeaContracting +} + +enum IntegratedSystemTypeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Financial" + VismaNetErp + "2 Payroll" + VismaPayroll + "3 Financial + payroll" + Tripletex + "4 Financial + payroll" + UniEconomy + "5 Field System (handheld)" + SpeedyCraft +} + +enum InvoiceLineRuleTypeEnum { + "0 VC: Exactly identical behavior to 1 (QuantityTimesPrice)" + NotSet + "1 VC: 3 - Hent lønn" + Service + "2 VC: 4 - Hent materiell" + Material + "3 VC: 5 - %-beløp av grunnlag" + Basis + "4 VC: 6 - Sumlinje" + Sum + "5 VC: 7 - Tekst" + Text + "6 VC: 8 - Diverse lønn" + VariousPayroll + "7 VC: 9 - Kun beløp" + Amount +} + +enum InvoiceLineRuleTypeDetailEnum { + "0 Auto generated default value (not set)" + NotSet + "101 VC: V-Spesifikasjon 1 - Sum pr lønnsart" + ServicePerWageCode + "102 VC: V-Spesifikasjon 2 - Sum pr lønnstaker type" + ServicePerInvoiceCategory + "103 VC: V-Spesifikasjon 3 - Sum pr lønnstaker type \/ lønnsart" + ServicePerInvoiceCategoryAndWageCode + "104 VC: V-Spesifikasjon 4 - Sum pr sats" + ServicePerRate + "105 VC: V-Spesifikasjon 5 - Sum beløp (totalt)" + ServiceTotal + "106 VC: V-Spesifikasjon 6 - Sum pr lønnstaker (Henter også lønnstakers navn på egen linje)" + ServicePerEmployee + "201 VC: V-HENT-KODE(1) 1 - Detaljert fra pakkseddel" + MaterialProductNoteDetail + "202 VC: V-HENT-KODE(1) 2 - Sum beløp fra pakkseddel" + MaterialProductNote + "203 VC: V-HENT-KODE(1) 3 - Ifølge fakturabilag" + MaterialFromInvoiceAppendix + "204 VC: V-HENT-KODE(1) 4 - Detaljert pr. pakkseddel" + MaterialProductNoteWithDetails + "205 VC: V-HENT-KODE(1) 5 - Detaljert fra pakkseddel siste pris" + MaterialProductNoteDetailLastPriceOnProduct + "206 VC: V-HENT-KODE(1) 2 - Sum beløp fra pakkseddel siste pris" + MaterialProductNoteLastPriceOnProduct + "207 VC: V-HENT-KODE(1) 3 - Ifølge fakturabilag siste pris" + MaterialFromInvoiceAppendixLastPriceOnProduct + "208 VC: V-HENT-KODE(1) 4 - Detaljert pr. pakkseddel siste pris" + MaterialProductNoteWithDetailsLastPriceOnProduct + "301 VC: V-HENT-KODE(1) 1 - Sum grunnlag" + BasisSum + "302 VC: V-HENT-KODE(1) 2 - Sum grunnlag med nullstilling" + BasisSumWithReset + "303 VC: V-HENT-KODE(1) 3 - Grunnlag tastes" + BasisManualEntry + "305 VC: V-HENT-KODE(1) 5 - Innestående av utført arbeid" + BasisNotInvoicedWork + "309 VC: V-HENT-KODE(1) 9 - Nullstilling grunnlag" + BasisReset + "401 VC: V-HENT-KODE(1) 1 - Sum-1" + SumOne + "402 VC: V-HENT-KODE(1) 2 - Sum-1 med nullstilling (etter utskrift)" + SumOneWithReset + "403 VC: V-HENT-KODE(1) 3 - Sum-2" + SumTwo + "404 VC: V-HENT-KODE(1) 4 - Sum-2 med nullstilling (etter utskrift)" + SumTwoWithReset + "405 VC: V-HENT-KODE(1) 5 - Nullstilling Sum-1" + SumOneReset + "406 VC: V-HENT-KODE(1) 6 - Nullstilling Sum-2" + SumTwoReset + "501 VC: V-HENT-KODE(1) 1 - Hent fakturatekst fra ordre, punkt, fase avhengig av fakturamåte" + TextFromAssignmentByInvoiceType + "502 VC: V-HENT-KODE(1) 2 - Skriv tekst" + TextManualInput + "503 VC: V-HENT-KODE(1) 3 - Tekst fra behandlingsnummer" + TextFromProcessingCode + "504 VC: V-HENT-KODE(1) 4 - Hent fakturatekst ordre" + TextFromAssignmentInvoiceText + "505 VC: V-HENT-KODE(1) 5 - Hent arbeidssted ordre" + TextFromAssignmentLocation + "506 VC: V-HENT-KODE(1) 6 - Hent ordrereferanse" + TextFromAssignmentReference + "507 VC: V-HENT-KODE(1) 7 - Hent ordrebeskrivelse" + TextFromAssignmentDescription + "508 VC: V-HENT-KODE(1) 8 - Hent prosjektnavn" + TextFromProjectName + "601 - Diverse lønn" + VariousPayroll + "701 VC: V-HENT-KODE(1) 1 - Beløp tastes" + AmountManualEntry + "702 VC: V-HENT-KODE(1) 2 - Hent avtalt pris" + AmountFromAgreement + "703 VC: V-HENT-KODE(1) 3 - Hent fakturert (saldo)" + AmountFromInvoiced + "704 VC: V-HENT-KODE(1) 4 - Hent fakturert pr. faktura" + AmountFromInvoicedPerInvoice + "705 VC: V-HENT-KODE(1) 5 - Hent avtalt pris som tekst" + AmountFromAgreementAsText + "706 VC: V-HENT-KODE(1) 6 - Hent fakturert (saldo) som tekst" + AmountFromInvoicedAsText + "707 VC: V-HENT-KODE(1) 7 - Hent fakturert pr. faktura som tekst" + AmountFromInvoicedPerInvoiceAsText + "708 VC: V-HENT-KODE(1) 8 - Hent innestående (saldo)" + AmountFromToBeInvoiced + "709 VC: V-HENT-KODE(1) 9 - Hent innestående (saldo) som tekst" + AmountFromToBeInvoicedAsText +} + +enum InvoiceLineTypeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 A line containing quantity and price etc." + Normal + "2 A line that is displayed only" + Text + "4 Pure sum line - should not have accounts, nor be added to the total when this is calculated" + Sum + "8 Some kind of processing behavior - example: reset sum" + Func + "16 Should not be displayed in invoices" + Hidden +} + +enum InvoiceReserveBilledPriceCalculationEnum { + "0 Ikke satt" + NotSet + "1 I forhold til avtaler (timer\/materiell)" + TimeMatAgreement + "2 I forhold til fast dekningsgrad" + FixedCoverage + "3 Dekningsbidrag per time - etter timer x fast DB" + CoveragePerHour + "4 Påslag på kost" + MarkupOnCost +} + +enum InvoiceReserveFixedPriceCalculationEnum { + "0 Ikke satt" + NotSet + "1 Inntastet ferdigstillelse" + EnteredCompletion + "2 Fast dekningsgrad" + FixedCoverage + "3 Dekningsgrad pr. time" + CoveragePerHour + "4 Påslag på kost - 4 on ORDR in old VC means 'Use system standard' - convert this during migration by setting it to 0" + MarkupOnCost +} + +enum InvoiceStatusEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Klar" + Ready + "2 Fakturert" + Invoiced + "3 Prosessering" + Processing + "4 Feil" + Error + "5 Flyttet" + MovedToStorage +} + +enum InvoicingLineStatusEnum { + "0 Ikke fakturert" + ToBeInvoiced + "1 Reg faktura" + OnInvoice + "2 Fakturert" + Invoiced + "3 Fakt fastpris" + DoNotInvoiceConvertedToFixedPrice + "4 Anbud" + DoNotInvoiceFixedPrice + "5 PadRegnIkkeFakture -- Todo: Will be updated once Jan examines VC code behavior" + BilledButNotInvoiced + "6 PadIkkeViderefakt -- Todo: Will be updated once Jan examines VC code behavior" + DoNotForwardInvoice + "8 Skal ikke faktureres" + NotForInvoicing + "9 Moved to another assignment, and should therefore not be invoiced" + NotForInvoicingMoved +} + +enum LogLevelEnum { + "0 Auto generated default value (not set)" + NotSet + "10 " + Debug + "20 " + Info + "30 " + Warning + "40 " + Error +} + +enum MessageChannelEnum { + "0 No channel selected" + NotDefined + "1 SMS direct to contacts, through a SMS gateway service" + SMS +} + +enum MessageDeliveryStatusEnum { + "0 " + OutboundDraft + "10 Ready for sending. Retrying a failed send will also use this state." + OutboundReadyForSend + "20 The send operation is initialized, but not completed yet" + OutboundSendStarted + "30 " + OutboundSendFailed + "40 " + OutboundSent + "50 " + OutboundReceived + "60 " + OutboundRead + "70 " + InboundReceived + "80 " + InboundReadByUser +} + +enum MOM_TypeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Genreal MOM documentation" + MOM + "2 User manual for the relevant product" + UserManual +} + +enum NotificationTypeEnum { + "0 Undefined type" + General + "1 System generated messages, such as update in progress" + System + "2 Message from support" + Support + "3 SMS or similar coming into a contact" + ContactMessage +} + +enum OriginTypeEnum { + "0 RegManuel" + Manual + "1 RegHTerm" + HandTerminal + "2 RegHpc" + Hpc + "3 RegAutoF" + AutoFakt + "4 RegBest" + Purchase + "5 RegInnFakt" + IncomingInvoice + "6 BestHpc" + PurchaseThroghHpc + "7 RegIm" + InvoiceManager + "8 RegVdc" + VismaDocCenter + "9 RegDigiPenn" + DigiPenn + "10 RegNelfoR" + NelfoR + "11 RegPos VC: Transform 53 (POS) to 11 (POS)" + Pos + "50 RegTilLager" + ToStorage + "51 RegTilOrdre" + ToAssignment + "52 RegFraOrdre" + FromAssignment + "53 RegFraFatura" + FromInvoice + "99 GamlePoster" + OldRecords +} + +enum ParticipantStatusEnum { + "0 The employee has been assigned to the assignment, but has not yet synced with håndholdt" + Assigned + "1 The mobile device has been synced with the current assignment." + Synced + "2 The employee of the mobile device has viewed the current assignment." + Viewed + "3 Service hours, products or anything else has been added by this participant." + Working + "5 The current is active (visible) on the mobile device." + ActiveViewed + "6 The current assignment is active (visible) on the mobile device, and service hours, products or anything else has been added by this participant." + ActiveWorking + "8 Assignment is set to be removed from the mobile device." + Removed + "9 Assignment is deleted and removed from the mobile device." + Finished +} + +enum PayrollFormatEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Visma lønn - supported by many systems" + VismaSalary + "2 The system is being deprecated, but the format is still in use" + HuldtLillevikV5 + "3 " + UniMicro + "4 " + PowerOfficeGO + "5 same as VismaSalary, but without wage rate details" + VismaSalaryWithoutWageRate + "6 same as VismaSalary, but without dates and period" + VismaSalaryWithoutDateAndPeriod + "7 same as VismaSalary, but without dates and period" + VismaSalaryWithoutWageRateDateAndPeriod +} + +enum PieceworkTypeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Timelønn" + HourlyWage + "2 Akkord grunnlønn" + PieceworkBaseWage + "3 Dagtid akkord" + PieceworkDaytime + "4 Reg. timer akkord" + PieceworkRegisteredHours + "5 Timer fastlønn akkord" + PieceworkHoursFixedSalary + "6 Akkordforskudd" + PieceworkAdvance + "7 Akkordoppgjør" + PieceworkSettlement + "8 Diverse spesial" + VariousSpecial +} + +enum ProductAgreementDetail_PriceTypeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Utsalgspris" + SalesPrice + "2 Grossistpris (liste)" + SupplierPrice + "3 Kostpris (reell pris hos grossist)" + CostPrice + "4 kostrpis fra innkjøpsavtale" + CostPriceFromPurchaseAgreement + "5 Kostpris fra lager" + CostPriceFromStock +} + +enum ProjectAccountCategoryTypeEnum { + "0 Any kind of cost" + Cost + "1 Any kind of income" + Income +} + +enum ProjectAssessmentTypeEnum { + "0 Ikke satt" + NotSet + "1 Dekningsgrad" + CoverageDegree + "2 DekningPerTime" + CoveragePerHour +} + +enum ProjectReportDetailTypeEnum { + "0 " + ProjectAccount + "1 " + Text + "2 " + Sum + "3 " + Reserved + "4 " + WageCodeReportCategory +} + +enum ProjectStatusEnum { + "0 Ikke påbegynt" + NotStarted + "1 I arbeid" + InProgress + "2 Avsluttet" + Completed + "3 Grantiperiode" + Warranty +} + +enum RowStateEnum { + "0 Regular row, no issues" + Ok + "10 Highlighted for som reason. May have a corresponding row in SystemMessage." + Highlight + "15 From integrations. There are messages in SystemMessage." + IntInfo + "20 There are messages in SystemMessage." + Info + "25 From integrations. There is some sort of issue on the row. See SystemMessage." + IntWarning + "30 There is some sort of issue on the row. See SystemMessage." + Warning + "35 From integrations. There is some sort of issue on the row. See SystemMessage." + IntError + "40 There is some sort of issue on the row. See SystemMessage." + Error +} + +enum ServiceAgreementDetailValueTypeEnum { + "0 The value field contains the resulting value directly" + Value + "1 Use the surcharge percentage" + Percent +} + +enum ServiceContractRecurrenceHandlingEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Re-open the already existing default assignment on the service contract" + ReOpenDefaultAssignment + "2 Create a new assignment" + CreateNewAssignment + "3 Notify the user to manually re-open or create" + NotifyUserOnly +} + +enum StockTransactionOriginEnum { + "0 Lde-Saldo" + StockCount_Correction + "1 Lde-Inn-Ut Manuelt registrert inngang" + Man_In_Out + "2 Lde-Reg-AutoF" + Reg_AutoF + "3 Lde-Reg-Best" + Reg_Best + "4 Lde-Reg-InnFakt Inngang fra inngående fakturan" + SupplierInvoice + "5 Lde-Inn-Ut-Hpc" + Hpc_In_Out + "6 Lde-Pakk-Retur Retur fra ordre" + ProductNote_Return + "7 Lde-Reg-Vdc" + Reg_Vdc + "10 Lde-Reg-Pakk Manuelt registrert uttak" + ProductNote_In_Out + "11 Lde-Reg-Fakt" + OutgoingInvoice_In_Out + "12 Lde-Reg-Hpc Uttak fra Handyman\/SpeedyCraft" + Hpc_ProductNote_In_Out + "13 Lde-Reg-HTerm" + Reg_HTerm + "14 Lde-Slett-Pakk" + ProductNote_Delete + "15 Lde-Slett-Fakt" + OutgoingInvoice_Delete + "16 Lde-Reg-Kontant" + Reg_Kontant + "17 Lde-Slett-Kontant" + Slett_Kontant + "18 Lde-Slett-Lager" + Slett_Lager + "19 " + Stock_Transfer + "20 " + Stock_AverageCostPriceUpd + "99 Lde-Telle-dato" + Telle_dato +} + +enum StorageModeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Average cost price, updated on add" + AvgUpdOnAdd + "2 FIFO cost price calculations" + FIFO +} + +enum SupplierInvoiceStatusEnum { + "0 The status is unknown." + NotSet + "1 Exists, but not approved. Depending on configuration, CW may use registered supplier invoices prior to approval." + Registered + "2 Approved by case handler." + Approved + "3 Formally journaled (NO: bokført)" + Journaled + "4 The supplier invoice is historic (archived) in the economy system" + Historic + "5 Deleted in the economy system" + Deleted +} + +enum SyncStatusEnum { + "0 Auto generated default value (not set)" + NotSet + "1 " + TransferPending + "2 " + TransferStarted + "3 " + TransferCompleted + "4 " + SaveCompleted + "5 " + SaveFailed + "6 " + SaveAborted + "7 " + TranferFailed + "8 " + TranferAborted +} + +enum SystemMessageSourceEnum { + "0 Added by the PostProcess stored procedure associated with an entity type" + PostProcess + "1 Added by postprocessing operations on IntegrationStatus rows. This indicates integration errors." + IntegrationStatus + "2 Added by postprocessing operations on SystemMessage rows. Indicates auto-maintained error rows." + SystemMessage +} + +enum TimeZoneEnum { + "0 UTC timezone" + UTC + "1 Western europe - Norway etc. This is the default." + WesternEurope +} + +enum WageCodeInvoiceRuleEnum { + "0 Ja Skal lønnsart overføres til fakturagrunnlaget Danner grl. faktura" + Invoice + "1 Nei, danner ikke grunnlag Faktureres ikke" + NoInvoicing + "9 Overføres faktura med uavhengig timeavtale Danner grl. uavh. timeavtale" + InvoiceOnIndependentAgreement +} + +enum WageCodeTypeEnum { + "0 Auto generated default value (not set)" + NotSet + "1 Ordinær Lønn" + OrdinaryWage + "2 Overtid" + Overtime + "3 Diverse tillegg" + VariousExtra + "4 Bilutgifter" + CarExpenses + "5 Reiseutgifter" + TravelExpenses + "6 Diett" + Diet +} + +enum WagePeriodStatusEnum { + "0 Awaiting payroll lines" + Waiting + "1 Payroll lines exists in the period" + Registered + "2 The user has marked it as ready for transfer to the payroll system" + ReadyForTransfer + "3 The payroll system has recieved all payroll lines in the period" + Transferred + "4 2 in VC - The payroll system has calculated salaries the period, and is ready for a payroll run" + Calculated + "9 The payroll system has performed the payroll run for the period" + Completed +} + +"The built-in `Decimal` scalar type." +scalar Decimal + +"The `Short` scalar type represents non-fractional signed whole 16-bit numeric values. Short can represent values between -(2^15) and 2^15 - 1." +scalar Short + +"The `DateTime` scalar represents an ISO-8601 compliant date time type." +scalar DateTime + +"The `Long` scalar type represents non-fractional signed whole 64-bit numeric values. Long can represent values between -(2^63) and 2^63 - 1." +scalar Long + +"The `Date` scalar represents an ISO-8601 compliant date type." +scalar Date \ No newline at end of file diff --git a/README.md b/README.md index a4eea79..085c135 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@ The APIs can be tested on dummy data using standardized credentials using Banana To get started quickly with integrations, we have created a [simple getting started guide](Getting%20started.md). +## Read & Write sample app + +See the [Read & Write sample app](Examples/ReadAndWrite/README.md) on how to read data from Contracting Works using GraphQL and update it using REST.i + ## Documentation Documentation is located in the [Doc subfolder](Doc).