(* Options:
Date: 2025-04-10 00:47:17
Version: 6.110
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://reportfiling.pwc.de

//GlobalNamespace: 
//MakeDataContractsExtensible: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//ExportValueTypes: False
IncludeTypes: BatchDeleteWebhookSubscriptionsAsync.*
//ExcludeTypes: 
//InitializeCollections: True
//AddNamespaces: 
*)

namespace PwC.Elmaas.Core.Services.Contracts.Webhooks.Requests

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
open System.Xml.Schema
open System.Net

    [<AllowNullLiteral>]
    type SubscriptionConfig() = 
        member val Url:String = null with get,set
        member val ContentType:String = null with get,set
        member val Secret:String = null with get,set

    [<AllowNullLiteral>]
    type WebhookSubscription() = 
        member val Id:String = null with get,set
        member val Name:String = null with get,set
        member val Event:String = null with get,set
        member val IsActive:Boolean = new Boolean() with get,set
        member val CreatedDateUtc:DateTime = new DateTime() with get,set
        member val CreatedById:String = null with get,set
        member val LastModifiedDateUtc:DateTime = new DateTime() with get,set
        member val Config:SubscriptionConfig = null with get,set

    ///<summary>
    ///Specifies a request to delete webhook subscriptions.
    ///</summary>
    [<Api(Description="Specifies a request to delete webhook subscriptions.")>]
    [<AllowNullLiteral>]
    type BatchDeleteWebhookSubscriptionsBase() = 
        interface IPost
        ///<summary>
        ///The subscriptions to delete.
        ///</summary>
        [<ApiMember(Description="The subscriptions to delete.", IsRequired=true, Name="Subscriptions")>]
        member val Subscriptions:ResizeArray<WebhookSubscription> = new ResizeArray<WebhookSubscription>() with get,set

    [<AllowNullLiteral>]
    type SubscriptionDeliveryResult() = 
        member val AttemptedDateUtc:DateTime = new DateTime() with get,set
        member val StatusDescription:String = null with get,set
        member val StatusCode:HttpStatusCode = new HttpStatusCode() with get,set
        member val SubscriptionId:String = null with get,set
        member val Id:String = null with get,set
        member val EventId:String = null with get,set

    ///<summary>
    ///Represents a service response that encapsulates a webhook subscription.
    ///</summary>
    [<Api(Description="Represents a service response that encapsulates a webhook subscription.")>]
    [<AllowNullLiteral>]
    type SubscriptionResponse() = 
        ///<summary>
        ///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.
        ///</summary>
        [<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")>]
        member val Subscription:WebhookSubscription = null with get,set

        ///<summary>
        ///The history of the subscription event.
        ///</summary>
        [<ApiMember(Description="The history of the subscription event.", Name="History")>]
        member val History:ResizeArray<SubscriptionDeliveryResult> = new ResizeArray<SubscriptionDeliveryResult>() with get,set

        ///<summary>
        ///The status of the response.
        ///</summary>
        [<ApiMember(Description="The status of the response.", Name="ResponseStatus")>]
        member val ResponseStatus:ResponseStatus = null with get,set

    ///<summary>
    ///Represents a request to delete webhook subscriptions in an asynchronous operation.
    ///</summary>
    [<Route("/async/webhooks/subscriptions/delete", "POST")>]
    [<Api(Description="Represents a request to delete webhook subscriptions in an asynchronous operation.")>]
    [<AllowNullLiteral>]
    type BatchDeleteWebhookSubscriptionsAsync() = 
        inherit BatchDeleteWebhookSubscriptionsBase()
        interface IReturn<ResizeArray<SubscriptionResponse>>