/* Options: Date: 2024-10-18 17:23:42 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://reportfiling.staging.pwc.de //Package: //GlobalNamespace: dtos //AddPropertyAccessors: True //SettersReturnThis: True //AddServiceStackTypes: True //AddResponseStatus: False //AddDescriptionAsComments: True //AddImplicitVersion: IncludeTypes: CreateWebhookSubscriptionsAsync.* //ExcludeTypes: //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.*; import java.util.*; import net.servicestack.client.*; import com.google.gson.annotations.*; import com.google.gson.reflect.*; public class dtos { /** * Represents a request to create webhook subscriptions from a user tax number, account ID and webhook events in an asynchronous operation. */ @Route(Path="/async/webhooks/subscriptions/create", Verbs="POST") @Api(Description="Represents a request to create webhook subscriptions from a user tax number, account ID and webhook events in an asynchronous operation.") public static class CreateWebhookSubscriptionsAsync extends CreateWebhookSubscriptionsBase implements IReturn> { private static Object responseType = new TypeToken>(){}.getType(); public Object getResponseType() { return responseType; } } public static class WebhookSubscription { public String id = null; public String name = null; public String event = null; public Boolean isActive = null; public Date createdDateUtc = null; public String createdById = null; public Date lastModifiedDateUtc = null; public SubscriptionConfig config = null; public String getId() { return id; } public WebhookSubscription setId(String value) { this.id = value; return this; } public String getName() { return name; } public WebhookSubscription setName(String value) { this.name = value; return this; } public String getEvent() { return event; } public WebhookSubscription setEvent(String value) { this.event = value; return this; } public Boolean getIsActive() { return isActive; } public WebhookSubscription setIsActive(Boolean value) { this.isActive = value; return this; } public Date getCreatedDateUtc() { return createdDateUtc; } public WebhookSubscription setCreatedDateUtc(Date value) { this.createdDateUtc = value; return this; } public String getCreatedById() { return createdById; } public WebhookSubscription setCreatedById(String value) { this.createdById = value; return this; } public Date getLastModifiedDateUtc() { return lastModifiedDateUtc; } public WebhookSubscription setLastModifiedDateUtc(Date value) { this.lastModifiedDateUtc = value; return this; } public SubscriptionConfig getConfig() { return config; } public WebhookSubscription setConfig(SubscriptionConfig value) { this.config = value; return this; } } /** * Specifies a request to create webhook subscriptions from a user tax number, account ID and webhook events. */ @Api(Description="Specifies a request to create webhook subscriptions from a user tax number, account ID and webhook events.") public static class CreateWebhookSubscriptionsBase implements IPost, IConfigurable { /** * The name of the subscription. */ @ApiMember(Description="The name of the subscription.", Name="Name") public String name = null; /** * The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9). The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start). The number is available in the private area of the BOP user account under "My BOP" under the "Registration Information" */ @ApiMember(Description="The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9). The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start). The number is available in the private area of the BOP user account under \"My BOP\" under the \"Registration Information\"", IsRequired=true, Name="AuthSteuernummer") public String authSteuernummer = null; /** * The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9). */ @ApiMember(Description="The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9).", IsRequired=true, Name="AccountId") public String accountId = null; /** * The names of the subscribed events. .A subscriber can subscribe to more than one event. */ @ApiMember(Description="The names of the subscribed events. .A subscriber can subscribe to more than one event.", IsRequired=true, Name="Events") public ArrayList events = null; /** * The callback URL to be called when an "event" of a certain type is going to be raised. */ @ApiMember(Description="The callback URL to be called when an \"event\" of a certain type is going to be raised.", IsRequired=true, Name="Url") public String url = null; /** * The MIME type of content pushed to the recipient service e.g. application/json */ @ApiMember(Description="The MIME type of content pushed to the recipient service e.g. application/json", Name="ContentType") public String contentType = null; /** * A random Base64-encoded secret key (8 or more characters) to sign and authenticate messages from webhook endpoints. .When receiving a webhook event in your subscribers service, calculate the HMAC signature of the request body using this secret. Compare the calculated signature with the signature included in the "X-Hub-Signature" header of the web hook event. If the signatures do not match, then disregard it, and don't process the request any further. */ @ApiMember(Description="A random Base64-encoded secret key (8 or more characters) to sign and authenticate messages from webhook endpoints. .When receiving a webhook event in your subscribers service, calculate the HMAC signature of the request body using this secret. Compare the calculated signature with the signature included in the \"X-Hub-Signature\" header of the web hook event. If the signatures do not match, then disregard it, and don't process the request any further.", IsRequired=true, Name="Secret") public String secret = null; /** * The XML-encoded RSA public key to encrypt the secret of the webhook subscription. Note: Only the owner of the key pair (public and private encryption keys) can decrypt the encrypted secret with the private key! Encryption algorithm: RSA with OAEP-SHA256 padding. */ @ApiMember(Description="The XML-encoded RSA public key to encrypt the secret of the webhook subscription. Note: Only the owner of the key pair (public and private encryption keys) can decrypt the encrypted secret with the private key! Encryption algorithm: RSA with OAEP-SHA256 padding.", IsRequired=true, Name="PublicKeyXml") public String publicKeyXml = null; public String getName() { return name; } public CreateWebhookSubscriptionsBase setName(String value) { this.name = value; return this; } public String getAuthSteuernummer() { return authSteuernummer; } public CreateWebhookSubscriptionsBase setAuthSteuernummer(String value) { this.authSteuernummer = value; return this; } public String getAccountId() { return accountId; } public CreateWebhookSubscriptionsBase setAccountId(String value) { this.accountId = value; return this; } public ArrayList getEvents() { return events; } public CreateWebhookSubscriptionsBase setEvents(ArrayList value) { this.events = value; return this; } public String getUrl() { return url; } public CreateWebhookSubscriptionsBase setUrl(String value) { this.url = value; return this; } public String getContentType() { return contentType; } public CreateWebhookSubscriptionsBase setContentType(String value) { this.contentType = value; return this; } public String getSecret() { return secret; } public CreateWebhookSubscriptionsBase setSecret(String value) { this.secret = value; return this; } public String getPublicKeyXml() { return publicKeyXml; } public CreateWebhookSubscriptionsBase setPublicKeyXml(String value) { this.publicKeyXml = value; return this; } } public static interface IConfigurable { public String url = null; public String contentType = null; } public static class SubscriptionDeliveryResult { public Date attemptedDateUtc = null; public String statusDescription = null; public HttpStatusCode statusCode = null; public String subscriptionId = null; public String id = null; public String eventId = null; public Date getAttemptedDateUtc() { return attemptedDateUtc; } public SubscriptionDeliveryResult setAttemptedDateUtc(Date value) { this.attemptedDateUtc = value; return this; } public String getStatusDescription() { return statusDescription; } public SubscriptionDeliveryResult setStatusDescription(String value) { this.statusDescription = value; return this; } public HttpStatusCode getStatusCode() { return statusCode; } public SubscriptionDeliveryResult setStatusCode(HttpStatusCode value) { this.statusCode = value; return this; } public String getSubscriptionId() { return subscriptionId; } public SubscriptionDeliveryResult setSubscriptionId(String value) { this.subscriptionId = value; return this; } public String getId() { return id; } public SubscriptionDeliveryResult setId(String value) { this.id = value; return this; } public String getEventId() { return eventId; } public SubscriptionDeliveryResult setEventId(String value) { this.eventId = value; return this; } } public static class SubscriptionConfig { public String url = null; public String contentType = null; public String secret = null; public String getUrl() { return url; } public SubscriptionConfig setUrl(String value) { this.url = value; return this; } public String getContentType() { return contentType; } public SubscriptionConfig setContentType(String value) { this.contentType = value; return this; } public String getSecret() { return secret; } public SubscriptionConfig setSecret(String value) { this.secret = value; return this; } } /** * Represents a service response that encapsulates a webhook subscription. */ @Api(Description="Represents a service response that encapsulates a webhook subscription.") public static class SubscriptionResponse { /** * The encapsulated webhook subscription of the response. The secret of the webhook subscription is encrypted and can only be decrypted by the owner of the private key. */ @ApiMember(Description="The encapsulated webhook subscription of the response. The secret of the webhook subscription is encrypted and can only be decrypted by the owner of the private key.", Name="Subscription") public WebhookSubscription subscription = null; /** * The history of the subscription event. */ @ApiMember(Description="The history of the subscription event.", Name="History") public ArrayList history = null; /** * The status of the response. */ @ApiMember(Description="The status of the response.", Name="ResponseStatus") public ResponseStatus responseStatus = null; public WebhookSubscription getSubscription() { return subscription; } public SubscriptionResponse setSubscription(WebhookSubscription value) { this.subscription = value; return this; } public ArrayList getHistory() { return history; } public SubscriptionResponse setHistory(ArrayList value) { this.history = value; return this; } public ResponseStatus getResponseStatus() { return responseStatus; } public SubscriptionResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; } } }