/* Options: Date: 2024-10-18 17:28:25 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://reportfiling.staging.pwc.de //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateWebhookSubscriptionsAsync.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class SubscriptionConfig implements IConvertible { String? url; String? contentType; String? secret; SubscriptionConfig({this.url,this.contentType,this.secret}); SubscriptionConfig.fromJson(Map json) { fromMap(json); } fromMap(Map json) { url = json['url']; contentType = json['contentType']; secret = json['secret']; return this; } Map toJson() => { 'url': url, 'contentType': contentType, 'secret': secret }; getTypeName() => "SubscriptionConfig"; TypeContext? context = _ctx; } class WebhookSubscription implements IConvertible { String? id; String? name; String? event; bool? isActive; DateTime? createdDateUtc; String? createdById; DateTime? lastModifiedDateUtc; SubscriptionConfig? config; WebhookSubscription({this.id,this.name,this.event,this.isActive,this.createdDateUtc,this.createdById,this.lastModifiedDateUtc,this.config}); WebhookSubscription.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; event = json['event']; isActive = json['isActive']; createdDateUtc = JsonConverters.fromJson(json['createdDateUtc'],'DateTime',context!); createdById = json['createdById']; lastModifiedDateUtc = JsonConverters.fromJson(json['lastModifiedDateUtc'],'DateTime',context!); config = JsonConverters.fromJson(json['config'],'SubscriptionConfig',context!); return this; } Map toJson() => { 'id': id, 'name': name, 'event': event, 'isActive': isActive, 'createdDateUtc': JsonConverters.toJson(createdDateUtc,'DateTime',context!), 'createdById': createdById, 'lastModifiedDateUtc': JsonConverters.toJson(lastModifiedDateUtc,'DateTime',context!), 'config': JsonConverters.toJson(config,'SubscriptionConfig',context!) }; getTypeName() => "WebhookSubscription"; TypeContext? context = _ctx; } /** * 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.") abstract class CreateWebhookSubscriptionsBase implements IPost, IConfigurable { /** * The name of the subscription. */ // @ApiMember(Description="The name of the subscription.", Name="Name") String? name; /** * 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") String? authSteuernummer; /** * 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") String? accountId; /** * 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") List? events; /** * 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") String? url; /** * 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") String? contentType; /** * 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") String? secret; /** * 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") String? publicKeyXml; CreateWebhookSubscriptionsBase({this.name,this.authSteuernummer,this.accountId,this.events,this.url,this.contentType,this.secret,this.publicKeyXml}); CreateWebhookSubscriptionsBase.fromJson(Map json) { fromMap(json); } fromMap(Map json) { name = json['name']; authSteuernummer = json['authSteuernummer']; accountId = json['accountId']; events = JsonConverters.fromJson(json['events'],'List',context!); url = json['url']; contentType = json['contentType']; secret = json['secret']; publicKeyXml = json['publicKeyXml']; return this; } Map toJson() => { 'name': name, 'authSteuernummer': authSteuernummer, 'accountId': accountId, 'events': JsonConverters.toJson(events,'List',context!), 'url': url, 'contentType': contentType, 'secret': secret, 'publicKeyXml': publicKeyXml }; getTypeName() => "CreateWebhookSubscriptionsBase"; TypeContext? context = _ctx; } abstract class IConfigurable { String? url; String? contentType; } class SubscriptionDeliveryResult implements IConvertible { DateTime? attemptedDateUtc; String? statusDescription; HttpStatusCode? statusCode; String? subscriptionId; String? id; String? eventId; SubscriptionDeliveryResult({this.attemptedDateUtc,this.statusDescription,this.statusCode,this.subscriptionId,this.id,this.eventId}); SubscriptionDeliveryResult.fromJson(Map json) { fromMap(json); } fromMap(Map json) { attemptedDateUtc = JsonConverters.fromJson(json['attemptedDateUtc'],'DateTime',context!); statusDescription = json['statusDescription']; statusCode = JsonConverters.fromJson(json['statusCode'],'HttpStatusCode',context!); subscriptionId = json['subscriptionId']; id = json['id']; eventId = json['eventId']; return this; } Map toJson() => { 'attemptedDateUtc': JsonConverters.toJson(attemptedDateUtc,'DateTime',context!), 'statusDescription': statusDescription, 'statusCode': JsonConverters.toJson(statusCode,'HttpStatusCode',context!), 'subscriptionId': subscriptionId, 'id': id, 'eventId': eventId }; getTypeName() => "SubscriptionDeliveryResult"; TypeContext? context = _ctx; } /** * Represents a service response that encapsulates a webhook subscription. */ // @Api(Description="Represents a service response that encapsulates a webhook subscription.") class SubscriptionResponse implements IConvertible { /** * 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") WebhookSubscription? subscription; /** * The history of the subscription event. */ // @ApiMember(Description="The history of the subscription event.", Name="History") List? history; /** * The status of the response. */ // @ApiMember(Description="The status of the response.", Name="ResponseStatus") ResponseStatus? responseStatus; SubscriptionResponse({this.subscription,this.history,this.responseStatus}); SubscriptionResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { subscription = JsonConverters.fromJson(json['subscription'],'WebhookSubscription',context!); history = JsonConverters.fromJson(json['history'],'List',context!); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'subscription': JsonConverters.toJson(subscription,'WebhookSubscription',context!), 'history': JsonConverters.toJson(history,'List',context!), 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "SubscriptionResponse"; TypeContext? context = _ctx; } /** * Represents a request to create webhook subscriptions from a user tax number, account ID and webhook events in an asynchronous operation. */ // @Route("/async/webhooks/subscriptions/create", "POST") // @Api(Description="Represents a request to create webhook subscriptions from a user tax number, account ID and webhook events in an asynchronous operation.") class CreateWebhookSubscriptionsAsync extends CreateWebhookSubscriptionsBase implements IReturn>, IConvertible, IPost { CreateWebhookSubscriptionsAsync(); CreateWebhookSubscriptionsAsync.fromJson(Map json) : super.fromJson(json); fromMap(Map json) { super.fromMap(json); return this; } Map toJson() => super.toJson(); createResponse() => []; getResponseTypeName() => "List"; getTypeName() => "CreateWebhookSubscriptionsAsync"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'reportfiling.staging.pwc.de', types: { 'SubscriptionConfig': TypeInfo(TypeOf.Class, create:() => SubscriptionConfig()), 'WebhookSubscription': TypeInfo(TypeOf.Class, create:() => WebhookSubscription()), 'CreateWebhookSubscriptionsBase': TypeInfo(TypeOf.AbstractClass), 'IConfigurable': TypeInfo(TypeOf.Interface), 'SubscriptionDeliveryResult': TypeInfo(TypeOf.Class, create:() => SubscriptionDeliveryResult()), 'HttpStatusCode': TypeInfo(TypeOf.Class, create:() => HttpStatusCode()), 'SubscriptionResponse': TypeInfo(TypeOf.Class, create:() => SubscriptionResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CreateWebhookSubscriptionsAsync': TypeInfo(TypeOf.Class, create:() => CreateWebhookSubscriptionsAsync()), });