diff --git a/api/v1/server/oas/gen/openapi.gen.go b/api/v1/server/oas/gen/openapi.gen.go index c748f2a6c..701206f63 100644 --- a/api/v1/server/oas/gen/openapi.gen.go +++ b/api/v1/server/oas/gen/openapi.gen.go @@ -26,6 +26,14 @@ const ( CookieAuthScopes = "cookieAuth.Scopes" ) +// Defines values for ConcurrencyLimitStrategy. +const ( + CANCELINPROGRESS ConcurrencyLimitStrategy = "CANCEL_IN_PROGRESS" + DROPNEWEST ConcurrencyLimitStrategy = "DROP_NEWEST" + GROUPROUNDROBIN ConcurrencyLimitStrategy = "GROUP_ROUND_ROBIN" + QUEUENEWEST ConcurrencyLimitStrategy = "QUEUE_NEWEST" +) + // Defines values for CronWorkflowsMethod. const ( CronWorkflowsMethodAPI CronWorkflowsMethod = "API" @@ -176,13 +184,6 @@ const ( PAUSED WorkerStatus = "PAUSED" ) -// Defines values for WorkerType. -const ( - MANAGED WorkerType = "MANAGED" - SELFHOSTED WorkerType = "SELFHOSTED" - WEBHOOK WorkerType = "WEBHOOK" -) - // Defines values for WorkerRuntimeSDKs. const ( GOLANG WorkerRuntimeSDKs = "GOLANG" @@ -190,12 +191,11 @@ const ( TYPESCRIPT WorkerRuntimeSDKs = "TYPESCRIPT" ) -// Defines values for WorkflowConcurrencyLimitStrategy. +// Defines values for WorkerType. const ( - CANCELINPROGRESS WorkflowConcurrencyLimitStrategy = "CANCEL_IN_PROGRESS" - DROPNEWEST WorkflowConcurrencyLimitStrategy = "DROP_NEWEST" - GROUPROUNDROBIN WorkflowConcurrencyLimitStrategy = "GROUP_ROUND_ROBIN" - QUEUENEWEST WorkflowConcurrencyLimitStrategy = "QUEUE_NEWEST" + MANAGED WorkerType = "MANAGED" + SELFHOSTED WorkerType = "SELFHOSTED" + WEBHOOK WorkerType = "WEBHOOK" ) // Defines values for WorkflowKind. @@ -325,18 +325,14 @@ type BulkCreateEventRequest struct { Events []CreateEventRequest `json:"events"` } -// BulkCreateEventResponse defines model for BulkCreateEventResponse. -type BulkCreateEventResponse struct { - // Events The events. - Events []Event `json:"events"` - Metadata APIResourceMeta `json:"metadata"` -} - // CancelEventRequest defines model for CancelEventRequest. type CancelEventRequest struct { EventIds []openapi_types.UUID `json:"eventIds"` } +// ConcurrencyLimitStrategy defines model for ConcurrencyLimitStrategy. +type ConcurrencyLimitStrategy string + // CreateAPITokenRequest defines model for CreateAPITokenRequest. type CreateAPITokenRequest struct { // ExpiresIn The duration for which the token is valid. @@ -415,15 +411,15 @@ type CronWorkflows struct { WorkflowVersionId string `json:"workflowVersionId"` } -// CronWorkflowsMethod defines model for CronWorkflows.Method. -type CronWorkflowsMethod string - // CronWorkflowsList defines model for CronWorkflowsList. type CronWorkflowsList struct { Pagination *PaginationResponse `json:"pagination,omitempty"` Rows *[]CronWorkflows `json:"rows,omitempty"` } +// CronWorkflowsMethod defines model for CronWorkflowsMethod. +type CronWorkflowsMethod string + // CronWorkflowsOrderByField defines model for CronWorkflowsOrderByField. type CronWorkflowsOrderByField string @@ -490,6 +486,13 @@ type EventWorkflowRunSummary struct { Succeeded *int64 `json:"succeeded,omitempty"` } +// Events defines model for Events. +type Events struct { + // Events The events. + Events []Event `json:"events"` + Metadata APIResourceMeta `json:"metadata"` +} + // Job defines model for Job. type Job struct { // Description The description of the job. @@ -715,15 +718,15 @@ type ScheduledWorkflows struct { WorkflowVersionId string `json:"workflowVersionId"` } -// ScheduledWorkflowsMethod defines model for ScheduledWorkflows.Method. -type ScheduledWorkflowsMethod string - // ScheduledWorkflowsList defines model for ScheduledWorkflowsList. type ScheduledWorkflowsList struct { Pagination *PaginationResponse `json:"pagination,omitempty"` Rows *[]ScheduledWorkflows `json:"rows,omitempty"` } +// ScheduledWorkflowsMethod defines model for ScheduledWorkflowsMethod. +type ScheduledWorkflowsMethod string + // ScheduledWorkflowsOrderByField defines model for ScheduledWorkflowsOrderByField. type ScheduledWorkflowsOrderByField string @@ -1220,9 +1223,6 @@ type Worker struct { // WorkerStatus The status of the worker. type WorkerStatus string -// WorkerType defines model for Worker.Type. -type WorkerType string - // WorkerLabel defines model for WorkerLabel. type WorkerLabel struct { // Key The key of the label. @@ -1251,6 +1251,9 @@ type WorkerRuntimeInfo struct { // WorkerRuntimeSDKs defines model for WorkerRuntimeSDKs. type WorkerRuntimeSDKs string +// WorkerType defines model for WorkerType. +type WorkerType string + // Workflow defines model for Workflow. type Workflow struct { // Description The description of the workflow. @@ -1274,18 +1277,13 @@ type Workflow struct { // WorkflowConcurrency defines model for WorkflowConcurrency. type WorkflowConcurrency struct { // GetConcurrencyGroup An action which gets the concurrency group for the WorkflowRun. - GetConcurrencyGroup string `json:"getConcurrencyGroup"` - - // LimitStrategy The strategy to use when the concurrency limit is reached. - LimitStrategy WorkflowConcurrencyLimitStrategy `json:"limitStrategy"` + GetConcurrencyGroup string `json:"getConcurrencyGroup"` + LimitStrategy ConcurrencyLimitStrategy `json:"limitStrategy"` // MaxRuns The maximum number of concurrent workflow runs. MaxRuns int32 `json:"maxRuns"` } -// WorkflowConcurrencyLimitStrategy The strategy to use when the concurrency limit is reached. -type WorkflowConcurrencyLimitStrategy string - // WorkflowID A workflow ID. type WorkflowID = string @@ -5402,7 +5400,7 @@ type EventCreateBulkResponseObject interface { VisitEventCreateBulkResponse(w http.ResponseWriter) error } -type EventCreateBulk200JSONResponse BulkCreateEventResponse +type EventCreateBulk200JSONResponse Events func (response EventCreateBulk200JSONResponse) VisitEventCreateBulkResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") @@ -10638,200 +10636,201 @@ func (sh *strictHandler) WorkflowVersionGet(ctx echo.Context, workflow openapi_t // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+x9a2/jOLLoXxF0L3B3AefZ3XNmGzgf0om729vpJGsnE8wZNAJaom1OZEkjUnmcRv77", - "BV8SJZES5VfsiYDFTtrio1isKhaL9fjpetE8jkIYEux+/OlibwbngP15cjXoJ0mU0L/jJIphQhBkX7zI", - "h/S/PsRegmKCotD96ALHSzGJ5s5XQLwZJA6kvR3WuOfCJzCPA+h+PHp/eNhzJ1EyB8T96KYoJL+8d3su", - "eY6h+9FFIYFTmLgvveLw1dmUfzuTKHHIDGE+pzqde5I3fIACpjnEGExhPismCQqnbNLIw3cBCu91U9Lf", - "HRI5ZAYdP/LSOQwJ0ADQc9DEQcSBTwgTXABnisgsHe970fxgxvG058MH+bcOogmCgV+FhsLAPjlkBogy", - "uYOwAzCOPAQI9J1HRGYMHhDHAfLAOChshxuCuQYRLz03gX+lKIG++/GPwtQ/ssbR+E/oEQqjpBVcJRaY", - "/Y4InLM//m8CJ+5H9/8c5LR3IAjvIKO6l2wakCTguQKSGNcAzXdIQBUWEATR4+kMhFN4BTB+jBINYh9n", - "kMxg4kSJE0bESTFMsOOB0PFYR7r5KHFi2V/BJUlSmIEzjqIAgpDCw6dNICDwGoYgJG0mZd2cED46hPXF", - "1jMOwgdE+MItJ0OshxOxr/xnRu0IOyjEBIQetJ59hKZhGreYHKNp6KRxzkqtpkzJzIK0KFmc0KYvPTeO", - "MJlFU8teV6I17fgcROFJHA8MXHlFv1N2cwZnbDUphqwP5XpKRcTBaRxHCSkw4tHxu/cffvmvX/foH6X/", - "o7//6/DoWMuoJvo/ETgp8gBbl44qKOgCLug7dFDsRBOHYhaGBHlM0KkQ/+GOAUae23OnUTQNIOXFjMcr", - "YqzCzCawB/QESIAU+yVpElIBVsO1gnKyIag0FJ2cKGSSW6GrKiExcajFDf1CEcKHyGGsSvdGcSpkrlxM", - "jQy7yom0JMpi9DXCxECBESZfo6lzcjVwZrSVCuOMkBh/PDgQ9L8vvlDi1B0/IEbf4HPzPPfwuTBNPLu/", - "y0kXjD0fTqzJdwhxlCYe1ItxLhP9E8PqCZpD5VBMxFjOI8BCnBaktnt8eHy8d3S8d/Tu+vjw4+EvH9//", - "uv/rr7/+j6uoKT4gcI8OrEMRMggC5HN6UYDoOSh0bm64YKBDq4CMx8dH7389/K+94/e/wL3378CHPXD8", - "wd97f/Rfvxz5R95k8i86/xw8ncNwSpn73S8acNLYXxQ9AcDEEf1XiaMS/SM6eL6LKsgGXriO7qFOHDzF", - "KIFYt9TbGeTsTomT0O6OaL1vvbFzSIAPOAk2nBEFijXKkeuSHMlg2y/u6/GHD004zGDrZeIkQ4YWiZ4H", - "Y8J1giH8K4VceBTxyRUAjtnlqHKOQjOR9tynvQjEaI9eDqYw3INPJAF7BEwZFA8gQHRf3I/Zintpinz3", - "pUJIHF7dej+lwT3XufoPMCTGJcMHefex0k81QzZqqnyGHzqgcByFGNZBVSUg/o1SjBXEbKYqkEtQt5kS", - "laWe0iM2sMD9wC9ivzXl5XfJlAmWNpRotXcUQrYktnNSGplXxflwEOq3z0+T/M74OEPejIkCLqIQdhj1", - "77uL80w0RyREQU9OxBall0cnXBpxlXspccTG1/FhGWkmiidSwlcxVgCrHgw+ihmO0yQKb6PkfhJEj9cJ", - "mk5hYtxH4PuIQgGC7wqnVAb2kijsP8UJxFiorBUSo00uxAZUtYcwTolm5Iqoo816OqiUCSrg5HRbz4r6", - "xZaoJWvjSJ7PSIcxirI/OX70YzFOsBvgXqd+0v738NnY3UAfXEtlIOWYGV2MlEuHEUUkipF3kpiIdA7+", - "NwodKSkduh3OP06GF/+Uh/3oYuSwMZZh7uxAnKPwv496c/D038cffqmejBmwZl7gtoiTACakPwco+JJE", - "aWyWarQJ1omQAGFC18hbyBtvgl3r6+ACy/fRA+yxGatrF6A2rbxBF+KD609g+kluK12rQyJhPFnJ3sp1", - "9dwkCmDT+cxX8x3OxzAZ0vZafLhisCasGPFhp9FyI9UqsMCWgYN0qp+Ufln9pD1hiGXC9MVwb2dA6fGY", - "ny7YVsbmv14prQuGruJho+UnxTBSNWpkR0yruZa4/cwhmUU+N9ikc4q6s/7nk5vza5fd5hTk5SsITQck", - "392Br/34KNDd8Nl4+soGv8GEnpfaYcz6bgaabqDS7AVYxU7m+5bhrJGuzpGOO2MwRWFmNKvbrqusZaaM", - "MUHz2OYSpNK5lXGv0OUy8WHy6fmzfNmQRBJKFQZWrAH5jvH7zAYVmKX0j6XYiGSvBc3yv8wpVXAHZ0V5", - "WX4lEm9IxoVI8h2m4Sidz0HybHX1vK12q+EorqBlC/khN/wM6CyBbXRL5x//Hl1eOONnAvE/mzXFTEdk", - "039bjgbkGFvAu9lyqmwrAd0WKGtAFBLkDCXQkyBJKQKw5/LXY7P8MEkgC9EzgiDxZtrDxETvFVxOANK+", - "YjBtKqWKHGVV3spJ0rBoszQ/mccw9CksDQOLZm1G/iuFaTPEvFWbcZM0DC0gFs3ajIxTz4PQbwY6a2g/", - "OqXDf0djjUCq81lgcknxWhDS+M9ovL8m63NlTExgbM+FIwJjneWwViMjaA6jlOiXLz42Lf1hWW3sQdHC", - "pNbOlq5Tr/4djYep5nXBYybMQD6l2L0ZZJ0y5xlzkyEE2KDPT1CI8Kzd1H9yiqzbUUq0vKVh95YgugTi", - "NCBaGxkmICHtFoMJICm2WA+Vs7ytoO9hGrYjcbr57ancu4dJPQu0Wa6iXDWBrBwwpZ7L3174IJJAsl0w", - "c80o2yZ5hF71L84GF1/cnju8ubjgf41uTk/7/bP+mdtzP58MztkfpycXp/1z+rfurKVKiN4jwNaPqNxV", - "s8ViEmaaxmbb9EZVn+y1U6v9UIiL9kr8yvAWoWl8UVFgExPpiIstMwDe/S0cz6Lo/tUXqcCyqiVG03MU", - "wlbuDfQIZZ+p+kDliTxIg2jqBCiEbd62uQ+kdg46nGjQqJqYevMWmht1CVuqH0DumJnN8CNH1Tl8gEHR", - "qPTphoqXwcXnS7fn3p4ML9ye2x8OL4d6maKMk6n+VvtfgEAnSMT31785SbLSSw/+cYnbU3GElvcn0bnm", - "BqVBgPok/NP10iSBIbmLGe0e99wQPsl/veu5YTpn/8Dux6NDeiEqclahs845RrRwYk6F2cTHVlcOBRat", - "Bxl8qo78zm7kfF1an56IgEC94NGmzC4RIEy4KTz3wD60ueFoJNZ/6O3uOyQJ8jTyOEznV3bXT0bH8hK6", - "b1rvf6xunHwsxF192PXTOODQ7qrJRxQXzn09agqPAhmohVl6KkJ08n8ICDxHc6QRGFYWx4SK/4AOoBXR", - "AcBkCCcoMLxhMVcv4QumDsb8wBLWETI3hBU6yrEJfgNBajh25uAJzdO5eu/nr1HYYT7FwlApdvsRhX70", - "qN/uVVhCGxD8YF6HlCKadcyBD20Xwb/pp+Df2DLoHqJQcSXJ0cy9XydR4kHf9nFcuRUo+yXXm0FVoLAf", - "Kj1vwSGY85b2GMw+L3EQlseoHIUcmxJrCiq1o0EPhmSk3F5LrxsMPBM986+Ozm1INTe0uY8uYn9Ywnaw", - "NgOBQGluIahcl8vuY/U8km1ET71JC1jKo2vFPqR/vR0/zCGMA/D8t/ID5EtSzDDYuLICPbzu+pTmHw4P", - "G9Zbgtu0apPBROluL7RLdi1b+CR0CeVyxuw1bNXC1Y6OWrJtaAacQkxuEoOOdTM8d0jkYBj6zPtLXG+x", - "Q6L1PBWbDog0RH9RbcCHIUETBJNMixQKkIgH4E5qavjMGAZROJUQN8jK3jp95OwMmbV+byNvBv00gAql", - "Lev9aSKpnku4e6n9kdbG4TMf/IeyLn9VBtme+5+b/g37Y3T6tX92Y7LSZjOv1+1pJxyY6t8L2lLD6lyb", - "hml4qpoUWz9IcAA2fV4pANgscWSlDt5WOrymD1hOFLXuX1Um24IrlobzrRzBqv1MFygVO/V2xRGcg3gW", - "JXAURGTFt6fCzUT/oM3NBTiIuPFE9LA3xS94kxFvnaZl0c9OksqFNR/d6qNl80JREMjXfPuVVoSKxrAh", - "mtiDXmLNHC099bZWfuGUL5uUfNTHnepzzAyEIQxM8IrPDvL1ViRMB3ce+ej6+zkf4cLoXy2nYH7WC06y", - "lGoJ5qbV029LLJ12N6+bDb7MordCKbZTWyUiMnQX6aKnkKH2iCAwNsk9vQ/KDAV+AosP6g134jX5jcQg", - "qYRgNkKSQOCDcQBNmyu/Z0HYXCA2kslS7kyGGcwUoKyiQA7S/UJsIH9Zqtn6NbgvnZB+HBVe6RTL9Iqc", - "nBgR3ppsBY00UOiOT6M0JHpwoRHKRcyceZ8aDJXvhQUvLQsnH+GTlrVfPdtFKTGBuCBHsue3kwmBiT0y", - "V+40xrvU7MwS2patvyRtaxInFrKmzYqzLjUrpqqPwVfN6nDKKDBbWa1jmEDdSeLN0APcSbnU/rq8VSIm", - "ojcqfacark8gSZ5rpOja+FG5xmyGJWpuDAoSJB71t08TvW/D1bzIgNonUNHGEEzlmanAbAn19R0URzMN", - "yUketFiPeENiPSjdwAeYIPLcpvdI9rGiu88owWQEuZJsT3vnoG2vli68/JZRALA0c4ZZBU2qdx3f3xpi", - "3pY4oAKZNhJyLtKlDWnY54bsu4vLu9vL4bf+0O3lPw5Prvt354Pvg+vc0D24+HJ3PfjeP7u7vGHW3tFo", - "8OWCm8KvT4bX7K+T028Xl7fn/bMv3II+uBiMvhaN6cP+9fB3bmxX7ep06Mub67th//OwL/oM+8ok6tyj", - "80va8rx/MsrGHPTP7j79fnczYkuha/p8fnl7N7y5uPsyvLy5uvvW//1ONe8bmghAteY0HccoSFXcLcUC", - "h4PrwenJed1ode8S4q87jobv/YsS4lu8W4i/aWsdMHn+xXJmSJiIEPq+IdHBrcwwFzmstbQSzFkvvK9N", - "JwdCEDwT5OHLmFympGbU3OwwA9iJYgJ9R1wts0H0c6w9S5UpvH7p+PzmnFbGUHtt8orNZq1YUwolc/IK", - "7Zq3QEjr90KX5GMa7XGSc4fsweCluCoUTkeQ0P/gzbEoj8DvP8WI7jILvWDA1I/Pe/FpsPPIks2xKBIH", - "JNABcZxEwJuhcMqzzjEE180vk29wImGOZQtCwZcs0/pV4WGeaLW4UCwynwEK0gRagMKcHFRAVEM+ZrGs", - "+jkDgPlSzY8sua8qCMXOsocWEW5t6Z0GniSRfWa2itB7NrqhOhPZxAFEulYKqlqtfd0sCbQAm+XCIPMZ", - "W08em5csw2DtA5HMKylyCW8y5+JiyXKangkEQ5keOeRnM9Z4i7pnDjZCIRPbAidmIctPvldqMoUG2tma", - "o0SQcrsThO9pFf5XIyj7vB2U9Zpa32CY8B5X6ThAXh0psPFq8j2pMG/Npov9W2TTh2Kf5M3i8vaC3Y5O", - "zr4PLtye+73//VN/WHMhqI9sYXZtbHY/0lk9qu5gEQFBEyYKcCiGgbq524xX9nvMECApX8Vidl/u/8Zv", - "ZOpNkt36Li8UB7Ea9BbUGp1mB5J5TVgI++4wT3q9DOaBKyRyHkHC0ipU9B3eWx9m0S5SRh8ks5r4Fz62", - "eYl6+JcL2c+2vZlDMyKxi35p2rD2QS9zSGAiQ1/kUcnHcv6B9uG+c+T44LnnHDmPEN7T/86jkMz+ueCr", - "fIYebSiMWbJKRF1FAfI06V+4Cl53K82ycvOmGr2ghWQtsl+Ta7UAzrw6YdBZu8xk0on7gG3AYdfoA37D", - "cpO/xWSZ6sobAlZWkqfSqK+ogJj3f4dNeJ0N4nVtEGu0Dawlb7e1hfbFyE23zCnAHCqDr0CKdfHXKrlz", - "zwIHYSdmrR0Q+o4HwjAiDmAFB1jlIplXq4x4LXRYd4lrNGIA308gxqoxo6CXydtx1aZBP3wFeKaT1jOA", - "Z+qQ/w+XphPym6s2vPDPiNfQcU5ngBgn/A0maIKa0MtMMlSWPIjmovhUAQY9Rc8ANpe40s4BsppWDoZk", - "g08NPsJxAJ4LBC33r7X1o4jdHwYCK9YAM6c8ho9mJDIehI851qSOpod9gWM7qzH2wnyy6gDJgKjF33Iw", - "VLLcZBXQVDyZUH4eTVG4eLLtxfh7qdzbW4dxuca4CddDOEWY1Ej3bUS33UlnEAxbuFuyKo/tpqnqMZ6h", - "GO+qZa5iqdzgab6OU4ZPpts2ETPCVamVWp7tmEHEPgg1TMsWqSk2WfZNk2CRh3k6biNKeNjhkhUFLBaJ", - "oZdAw9sh/5ZlzhE8TG9CzmDCSlDGSfSAfOj3HOAkIPSjuezEgpzG0JnCECZAxHSpcYvHa8N4ezT720mA", - "i+3Npkk5g7MR2VQqb0mmyKL4sYq+LHQxMqbwd70DxJhcHbKrXp4/ig+l1lhs9eQrgq2tVytA/857Zl79", - "p9rK1BTkr9fXVw5vxEpSSwpOBPItEn0pWMlgLkz8wxLh9SQkU0WZngi4/VDSvGxtbRLWUsDCtPO9Eif/", - "pX/t9tyryxH7z801s6GaTkge34Tr4nIxfzEQlgYPhE4ME0pX+608tcADQAEYB1CGGTVkG69OC5+glxLo", - "eFEoXjiCZ/0TBlU1WBmZZNBQGZQ9j6BpCH0n77SKGqFLxt4HYAwDXP+8w9owlsqPg+wYsE74ApNzOo5u", - "ywKAyVcIEjKGwCIsWWwVe63DFEDgzGTvVeexA5yJqVrQxwSMAxatsUUQzsGTmdA1afaWI/j16xlm/SKp", - "ZE7TBYPSNllEfP6c1pJgS1nadEFwaUi3ZBBOIjvqHyodmD9tZJL8WCY54AH4nPEWXEgpYYJmIXmUnC6z", - "ADtGK3sjj4CT0+vBb32Wlzf78+rkZmRwN+c/5CfIqH/++evliHvafz+5OOFO9rf9T18vL79phxCnoTGn", - "gDgsRT32ItSNiRFE75sm9fNmeK4Zvq02ytprNQlFWrbLGCpzRNOuq04OUOMHwN//GyavrwRUg4fXN44Y", - "9e4MyGFRGpScAEA4TUVglLWcGJ19w/wE4p1Fphl9FKBeMxIiqv9EEqCvEeLfm4etLI5BpOp/l+cnPKjj", - "9+uvzEHo+ver/uh0OLi61vLureLjtHwxFfnip6Vz+0ct9miYPWvpH0P+jMYGAUm/6ACyIitRomNloQZt", - "zlgj5qQJVKPegOnia81K8QKt0i6quLRPISjoN8tgUufvUhbBJplDxz2VqpDOq2cKifI9C0gpvSmGMt8Q", - "fzieQoIZ7ry8qzOlfbOzRHkK3zd6lY1IAgicPptObP7VIRF/rpTF8dVZufcZwk4CgTcTyZ8FV/OwqrvB", - "xd3V8PLLsD8auT33bHh5dXfRv+2zux6Lqcv/ySPNhpc3F2d3w8tPgwst87fUU3NVtPi0Xy7a9O64+Tov", - "py4jsKfdyDqqGJzp3o4zAAdn2m2Tvb+hsHCB/nxzcXo9YJLz7GZ48umcqk9nJ19qhScdRB6JrTiFza5h", - "Pfldf84ule1lw0c0O1vsDByitdGpjfHlN5gHyWvEYSkTf5Wt7+Ez1l+j5PCULGumKF3bqJgADo6hhybI", - "yydx/hEDjKHvPCDgTFBAYPJPy0T/t8ViRCtP5yjeYoxp/TIPGDXt4NGhkrV2bcldFss0yTNk2NNlnt1l", - "hcc8z9ryOska+dwjNaR+0yCsLYW4NmekTbJP6H96bjH4tdKrmpWypeqz9ryWWcpzdbE/6oXJllza6pJM", - "14FfVy3gZHRKj+n+6LT2nM5HqSmdo9JyQYopkrFhktEMxLCT3Z3s7mT3a8ruhtTNfyPRvtq0403SjU22", - "0H2nSAiGS09pQzXv41F4pXCsJoFYFMpEx9oGop7EelJp3i5YEbRhi/EpS522SK2LdZbmKJeqaFiE8XLH", - "ciK1oSM51Cnv2KQ9lJpX5hf8oI2Mkryk/Sh4RvtNsp72Y86N+hxpxtVcg6kOfwE/y5e30y5tsNQ7U3EI", - "6whEcP1pQjXMiZ7xazJm3iEDuzVNKLJXTQylce7E886qp8X6FbbXpkt404hWto6FB87ws1qti5+DevTl", - "R+OdMEO3RzOPtFlBjE3zc0QdGIqaUWbZgjnbZkNUCzjV9uEEpAG5SlAks4Tp2J81cmLRSsfAjdbb/L3l", - "lV5RsqSaFqBicfZf58mjNQos8u6N9nr6LTfbWz3RKDzdgrWw8tBieMflH62AUBMW2Bpma5VlsxIrYc7T", - "dCoD/WhmB7avq7RstyGQN4Vw/l6cm7SLGJ8kkLmh1GSenYOnhhYtM2ia8l9yf+WUCimqvs85hGMIEpic", - "pITFCDKMMtnLfs43ZUYIy3rmRdE9grI5orvKf5IvjB/dGfP0U8IDQYy+QeE7gIS7gMaJlXdzTq4GLOMn", - "YVf04q8ZZblH+4f7h4wwYxiCGLkf3Xf7R/uHLBiFzNjSDkCMDgKRpnmq89P+Ih8oaasQYuxk10O6i0BW", - "VnHPxfcvbF3Sr5bNcnx4WB34KwQBmTGp/EH3/SIi2ZyFnXE//vGj5+J0PgfJM4cwbyifqv8Q43sz6N27", - "P2h/ttYEAv+5ebG0Gapb7VA2WOVyGXAslpjHzpIETCYi1U/d6jNoG5f/cHQARKDzHotr2WPvRfjgJ/tZ", - "/e2FwxhAotHFz9jv2AFZBV0WT8+jd1j3CsZKuRP4CIwWE8ASe1Cwa/JjVWZw2FWS8Rel55y7KktxVe7n", - "ZkAuF5e+m778qOz9+yq2RqnnQYwnaRA8OxylfqH8cAV5Lz33PacSLwqJyNEM4jhAHsPowZ8i0W2+jobT", - "imVEFxFa5afqOQgoFqDvRIkzBr70KudgvFs5GDooPkfJGPk+5LpsTt+cTurITFK8yKf1o+c+7WWpB1gh", - "Kf6hpyGMH+wSRTxN9DdX3pchcT7C34PEGT18irjsXAkxWORV0ZBJLbZI5KQS50VsvOhF9EoWYkh/WoW9", - "IAY4oJ0YsBQDnFrWJwbUAzJGezyPysHP7G92GsYR1igNQ/gQ3bPUpCdXA56BRThlZDOWxESMWIoXaR6g", - "3W2kRDa8QSZIWLfquEvY8gSdM+j+3kSN21C1IB26sddi5yQZ57/VUXK25QUK9oIo9Q/Uq6xZ25WtMndD", - "eZ1ggzgoxASELAVakYhP6Wf5imxWgtePWwaIk4ZZhNfWEFiD1s4RrD7Lia3/rjzIPO3JIfaimL9pixNN", - "2W9uXD34yf77UrffVEqxVvuVDWU2Vr6RjZKIDWFUTtjXjQqh1W22qDTRcHgnkCQIPgixxrHBdqyTbQUS", - "VzCTkzdHcY1U4/Tzw0zhB01ijW1LJtUaaP4sE2Bvne7PGAl3tL9dtD+HC5/hxtN7cwe3yHLfhqayI3FH", - "DvJVHOF0jAOlxiw27vg5wvQCFDiF1qYNpq0HxYZr2206l9hxZcqWmy8THBRWt02EkG0924jSJlT3X91k", - "VrH44Cf7j4V51RmpFY4rW6yWrba3phbGNB5lDMStNJsWcbJNZ87RZsC4CUFKZlGC/hf6fOIPm5mY5/pg", - "KZNAEESP0NebastUK3mC/V539nGiK3JMiA9+4hBbcUuxSneVX0Lcgk1KJb+NjCJE6taxSQkZHaNsIaNU", - "CDZjlYtRLaOEWMMm/POLagbQGyzpvPKuUmGR1o8WJs7IoF0Xc/TMN7R7+LzoFU2B4fjDhwIQR9ZXshoG", - "jZOI/gP63Rm2Raxp0u4RmaVjB8SxpPbqscbblPiRwHgvSdnhJf58OQC8Hm+TZi9aybhOkbOmyqo8XoPp", - "3HJgC6aV45kPNAHvphlXRLWSyMH3KJaw/ZXC5DkHLppMMLuxakBBIfnlvTbAtX46HvY+fjZMyT63nHGd", - "hhpNtekFLDb4jVtr6KzvNzNrgeseAWbCZxKloa+7TxbYX2H+TDOgPw3T2lehjIWbZVLulm2WSLxNC3nU", - "54N20ujNSKO8XHgni/4+skhh/PVLoiCa1ssh7ATR1AlQWNGNqu8659H0HIX8dOzE0HaIoZ65GFYAH2CA", - "6bw8T0nNxKxlYeZai7SgA9qLB9wbVo4hPXgdNpsCxyRKDIDwDm0BGfFeGiBuWeHcyGGu9eb1R2rygJaT", - "FxIPGPDAp/ezDAe1UJwpzRaBJO+/3kNKlQZN5xMlye5wMjxrslMhk8LKWXAeTdsfA/wzNtupeF577ABW", - "Z8fgTMfd/XhTdz2eqnzwYvm5etdUEoks6K/giNpI4iLRiOJ52vmZZiTO9zontiavUh1FZ6ZYnt2mxruc", - "uaY8IUxQOK0n8N0xy27AXdyOCfMws1d1DO/4cWV+3y28vGv5Uh8DVe9jAzJt1eSDjpviQWyvI1vBwZsM", - "lljAcmDehI53CupaHbXaM1OvhYrWPlAq097e6uGmapiri4WyVkGPXjkWqnoCdrFQtjrqUrFQdqfkAYaE", - "/hc3x03LLo7sUh8JpZALCqcj0cfSGfuNHJMKYpY4I9U96Vip4L5rRNPK+CgLKKx/aMvi+7Bd/GCnT2Y+", - "xwwfOM8K24pPZPKQztZXVh6zIETcLjKxSWFcIFi20xEZAiStK2rhOk0Y5Uk7/loVfwlGWDD0t/7AsfDq", - "wCyEpODawXsbguR25ax5y8+o9/DZ6hGVtivMapVRj5EBS1JVTchqhkmpgmIFWy4rWgOolGNZDMQkDUW6", - "J2gFq2xr/fypT2H8Sk/SbD9f50GaTb0Fz9EqHOpjdA2xZKGW9/BZVLiLAUoq9JJlUP+DstvRR9b0iJe1", - "O+b/OqbiXbceTZZ+LTM05kk2L0MGMlvRuUhWbWDJ1eZ2XnuMc+cFsJKbAZQ+npaRzbYm5LpA/e4KwBAg", - "kiHXmoU5f7+OG4JdCg3V5sujct68F+jxvzYzq0xcK9RT+ORB6FeC1MQFRUZMWfN588XkYJwG92a3n09p", - "cC/IA+cyAdcKBdrnDQsGuvyWwgG/knSogGppUqjIi85tfMsEBuNbVWrgFYsNj9UfqfEXZN+5ZUMpjVjQ", - "eU1ihPuZ8BHesobBEGCvYYgbRALjADyvXI68Wn2ZclrwBtHEkAb9nOg6IbWtQmrIKHU98onZ1SyNrtxY", - "Z2F4/Qafu3e+3Pq40PWdIbu7wuuu8I4wBq+SD8RpUJMwl37H7Y7moTxi3urRzBGwLUfzauxsHLhOq39r", - "ByYKHxCBbT2uZS+9F9mAfe3OSuk8puBjIbcxie3OWUznT53T4pqcqPkEtbTe2cMVt2mOEjtvaY7bV3WR", - "5uAu4hktCKNjS707dMY3q/HdFHwuf9jj/25XG8mClVtXQ9ouB5siX9XDtpehY9fP1kbu1ZR62jLu1aUl", - "zPbHFM5d3Mc2JZQsOGHH8w9uISesNxZ3sXP31aJxLTlXU51pmzlXRMm25ty6k28O52NRTrbFHU320rP4", - "d/a1u6NJalTwsdAdTWK7UwZ1d7ScFlejC4rxDn7yP2xyUgMBhDNJonlTHBynhr+HKiiWbYKNf9585uyV", - "8+4iOuDb4NotSnt3YchylzFpYWNWJi/+SmEK9+ZUcHu4sVwRa+2I1tkrcq3A+ALJf2iv72KKXZQZOxUq", - "sEve3+vXXgq0t1hIWFbrXnJJJxNfWSZScZTtzjwTLFIiSs5ZVCYmgMA99uBk4ypBW/PnqSZfiSEg8Jw2", - "7ALVtjVQbVVBTY2YXGfoUkZnWxC+VIZlU/k0i7zWwhlHYefOG6d0Z1Vxk4tbimrnnP+6qMQVPfbiKEDe", - "c3MOF9nB4R1sMrhIV4Ir1qPL33KgQ8tiJp7SbnSmno2nQeJlyWoztxRKnuHaSn2d8ZMnbVFx0ub2UEJ1", - "Vzxpi+qaKbxgqIvZUAPQghEPMAEJMbLjiH7l59jlSUpmDruslBnyBsOEv5kwgC4pQlnPXeTMd4fHDTXH", - "GMrEsVLAygwCX7zxBBEnmCKtlOd+KVXLomQX3SNIB2XZkAvlsxhKizNKQqA7sDAdNCXSKhXWw7o6d50c", - "FnL4YlSoD9xCEpex3MnirZPFVUawKjHZmL/LotZq553IEFDkr9q0Xauj2eKk1l6GXdHYLWZoI+dZcnTt", - "iSoKdOxt4slK1AzbtZer9ZsLdIhpZzPIClkVdqZ7VNmGR5Vsb6qPKkvaJzTl1GpZN6+c5oyfOUNpaznu", - "iB2vt60l3TZQeHFB+dBJhK2ruKiKiJVUWbSSE405NU4IgfNYZIthbS2KwO5aMo1OgtQ5sCHM3PuFCOFE", - "EGzfBeGVH/GaGGVTDJ1A2rEm9p4lKbHlYda8Y+FtzAaQpKHYqobgCxTGKfOH4I+7uuW+bIWm0uUCqJEv", - "bMNfQ6Dka6q1BfBmllXiv0Ay4sN2ouX1tIN2Wa4MlgYxXHeh2OYLhdyltUgN8Ra/9xgl93UBY7lbp9FR", - "ovORyF3UOSpuGVIpQuoyZVJkZG70vKMjt6Mz4m/bq5xC/ounChGDmFjozb++FfiHY2NDNXM0M/utEn3I", - "re04d/ue31TGW8RYz6VyvXmenpBceNf73uZnw5s/LHNMdKWplr5qyhCgYuw0x/Gij1QS0fx62T5DpFqk", - "R5MoUqms06WLVNJFKnjBDWaiQhmk10seqYPbuuqcYkEqEEx3Pd3KpJLFPaoGGdZfUNsInJ/qP5texwuc", - "0HgCCzLd5cfyEuvrQVMxuMNqgtiuReOVu8dzc7Rw0S7dHCncK9LU4vx8wJ44Gk3U/CGEM7QK9H4DXw/Y", - "6B1zvz5z57kRrpTSEBzGZazZRRyx7e4M2hsyaN+quA9tshLkm9RWZVidxMEzEMM16REjNnYnb3ZGmeAb", - "1mkUfyONIvOIt6ilXSijHQTZqxvW6Bp1rM/CsfgDeV+m2+9kwMoBPAeYOIMzlrRyBp0AyB00JT8BmAx8", - "Y/aTd8e67Ccb8NxrU2ZDlTydb82WvtgvIEvsn/PtZCG2eplgLe00mu51ItcUuveJ1asIq8xNlo1pWWnS", - "Ac4YEG9WeZ+oO+TffIlJ1bTPkWHrvyrcqqvW/TdddzLoHjwa8gRxstnEYwM+8JIobD5EaSvnz2icA0US", - "NJ02vvifJlG4ayfr20x0mG0s8um0U0gyLW6/IZ+t6a6x6ny7u5TMtia94vjZmYgUjivL8qjyGbbP9Dh+", - "Xl+yR+XY3HC6xwIyltBhu4NJo8dWToI1KbT0WDr4Sf+zJ3+1q19QPaqsrdmUcHa8mkG2ehNYBYxuvp6B", - "ZeEB7SZ2qSTLhQD0aGpngC4SxI+XXt0L0ZLMtcs+J1vMWWs6Ortjcxesta0O6xXIB7vzm9GArWlWtRc3", - "Pzh398htvkfKWu62l0jWfr03yK2+3lLgYpBQpBkeIUtg8ca3qo1vQ/BpQoi1sInnvk2ZBQpowwSQFEOr", - "ejyy7SJX2hHrKy6XNsDdo9C3goo1bA3SNxT6zdDsvAWFoDl0wIQCWnGDewRYRqWpS3CPD4+P9g7p/64P", - "Dz+y//2PAfei+wmdQE+8PiBwj0Lh2paXoxCP4SRK4DpB/sRmWCXMNVieoBDh2eIwy/4bxfOqgF4pptdn", - "Eaya396sPbCsO3bXmrU4vq3HEMh83WzyuwJHgEYPuiL7qwlfLV1ad7lCYaeGd2r45tXwTrfsdMtXcWbH", - "S1b0ZAKoyzzdfL6vobpmfs5TUP00oMdjg9Uwa7mI/XAkO3dWxG22Iq7vXpQRwE65S3TKVKdM7YwylS8j", - "F9Ursc1alUrPGDyz0m641nhVwnRWh9VqJQYNYL16ycHP7M+9SnKORq8kPcgtdZYd903S4MCYjFaL6q11", - "V9LvbuevVPZXMuCpnUOCgTYaPJdWwoA7XWBmp7hvncdxdxTvul/TeuWInWKQxd+/5DE0tSUogRPCR3Mk", - "jX0gzTXvsDsZc+tvrwyK2oD7WtA2WhxTsw1tilkYN3+jGQvbOXmqiX7N8HdicfMV+7YuS6IQdHVUvp4g", - "RkUWF+zIenksNQIhke31wYoqMUzDTgpvUgrLHVA2oI38NeoNG6wu1F4dVSXwm7xpduLXSvwKhaRJJ7bN", - "OLeI9OVZuPe8KA1Jg7cOayNzGsn08eABoACMA8gEsSJ59BfzL5DwLN/4lM2481K4KfXUjieUKWzWgrdw", - "TiqcfDrDuOG5voCkxRLSFdk/xTDBB16aJLCeszG/KPCGDu1W4d4bDJMvkJyKwdZId3SmlnTGIO4Kmbx+", - "IRPopQkiz0yMe1F0j+BJSmXXHz+oqCrFuRXJTZI7234NGU8RmaXjAw8EwRh490ZyPo3mcQAJ5DR9Sed3", - "tOcRnYiXcfjChr6kuDyVw5cI/N3hccPTgifm9avzziDwRc2yIOKboa2Rl4n1lxIyC7iTCyzOYYk+TEBi", - "FgUj+nUxxLGu7bHG4Fk/zhh0LREWRdMArofe2NB/c3rj6FsxveWI+9vRGwofEIE2hQ2lNsw7MKXb6vim", - "I1yzvgMx1xpPcXUiK1eKAGG5McUFdvqi9bHKcnuWsJdT3rXGPlegvQPgeTAmNXX62XecGdvEJBVqUzef", - "93HXY1rig/OJmgvv1VAfX7mO/jqHgLz6PENSZe/t6SuBLOVgTUUu+r0dffE+7rrqW9HBV0BffOUdfTVU", - "H6dIWoC+gmiKQjNZnUdT7KDQAexs3K9RMM7ZQOuhJXYE0/E3VCHU6h4dRNMp9B0Udtfnrbo+F491SjW2", - "9+QgmkYpaWCGKCV23BClr2/rETQabVm9nI5IG5RRRj22ZDuH8zFM8AzFLa5ASie7axA/Qr7n3URE0VoJ", - "XD9p+/uQiqLuTrTInUjFYDNJxgDjxyipcUrgYlJIUke2rxOpV3LM9ekYpzMQTrOJtknZ8BhkfoaoTpzv", - "kDjnZFWkdAsmSuCUCrKk7tLHW+BajSRz2VkX20gwtolhJPK6Z66d0NMlCdnqPDgA3v1aXhhGdOQtfmBo", - "EDUtXxwe4XgWRfd7wiHl4Kf4wSLKiwod0brqsMJ/tw/gEgOZHUKyiTbsD2IZESXh60TM64uYchSWSqZG", - "LxDRwo45DgSebe5bsqmsD1bPMeIIxbbpGraWb1bjR8Wh525UAjUUM0MxockJNstGKbCTbVfHnlvEnux6", - "Wdmitjya8Sb748Wi5K/GuMEpzDLcUTib1fkuaiJcdsdzsbUPmVhxZ1ipOCdWYkCo/lXvi8g0NEqFxJvV", - "mE1qCZm32hlaXsOtlCGgcG6YzgqBgVSibHOhEZa8xiHrOE3PaYIhlmG20mlSdvK3yneReSJbBdi3uBdt", - "pad8m1wRGYBdzM7mY3Z01yGFYhb0k+81aVj2nNBC5XoLASMLBol0vPXavKVGoyzDWDZqnz13tdMDt4LB", - "1lfPmCPDNnyWa11FLtu0cmglEcrqYScPjAricszZoCZaJW2nm1TMzp4x3gNMME+gaTwpWyRp3wZ+1iRK", - "5GkOV1DFZvEaNnrApkmUxiz7ZA6C3CgjKKzTN/jsNmYGWLOQWDIjtCC9Lin0NmoTC2WhbiW4ZLYSo5uB", - "DLRvmz9kobQhWym5rjXssu8MJsy6jVNKHdDvMa4KAIGYZDyFsDOBxJtB35SjOBf8W65ICTJYMBfJq2Ug", - "UeBtlXqkSzjSJRzZYMIRrWgWsgFbvGoVTnIrsfwbb7xDJpi/g1xes5QTm7qkKtjJu61SAXNSXFQFLPuQ", - "jSFIYJL5kPW0XmUweZDyIE0C96Prvvx4+f8BAAD//2pOBlCS/AEA", + "H4sIAAAAAAAC/+y9eW/jOPIw/FUEvS/w7ALO2d2zswF+f7gTd7e300nWTiaYZxAEtETbnMiSRqRy/Br5", + "7g94SZRFSpSv2BMBi520xaNYrCoWi3X8dL1oFkchDAl2T3662JvCGWB/dq/6vSSJEvp3nEQxTAiC7IsX", + "+ZD+14fYS1BMUBS6Jy5wvBSTaOZ8A8SbQuJA2tthjTsufAazOIDuydHHw8OOO46SGSDuiZuikPzy0e24", + "5CWG7omLQgInMHFfO8Xhy7Mp/3bGUeKQKcJ8TnU6t5s3fIQCphnEGExgPismCQonbNLIw/cBCh90U9Lf", + "HRI5ZAodP/LSGQwJ0ADQcdDYQcSBzwgTXABngsg0He170exgyvG058NH+bcOojGCgV+GhsLAPjlkCogy", + "uYOwAzCOPAQI9J0nRKYMHhDHAfLAKChshxuCmQYRrx03gX+lKIG+e/JHYeq7rHE0+hN6hMIoaQWXiQVm", + "vyMCZ+yP/z+BY/fE/f8Octo7EIR3kFHdazYNSBLwUgJJjGuA5gckoAwLCILo6XQKwgm8Ahg/RYkGsU9T", + "SKYwcaLECSPipBgm2PFA6HisI918lDix7K/gkiQpzMAZRVEAQUjh4dMmEBB4DUMQkiaTsm5OCJ8cwvpi", + "6xn74SMifOGWkyHWw4nYV/4zo3aEHRRiAkIPWs8+RJMwjRtMjtEkdNI4Z6VGU6ZkakFalCy6tOlrx40j", + "TKbRxLLXlWhNO74EUdiN476BK6/od8puTv+MrSbFkPWhXE+piDg4jeMoIQVGPDr+8PHTL//6dY/+Mfd/", + "9Pd/Hx4daxnVRP9dgZMiD7B16aiCgi7ggr5DB8VONHYoZmFIkMcEnQrxH+4IYOS5HXcSRZMAUl7MeLwk", + "xkrMbAK7T0+ABEixPydNQirAKrhWUE42BJWGopMThUxyK3RVJiQmDrW4oV8oQvgQOYxl6V4rToXMlYup", + "kGFXOZHOibIYfYswMVBghMm3aOJ0r/rOlLZSYZwSEuOTgwNB//viCyVO3fEDYvQdvtTP8wBfCtPE04f7", + "nHTByPPh2Jp8BxBHaeJBvRjnMtHvGlZP0Awqh2IixnKeABbitCC13ePD4+O9o+O9ow/XR59ODn85+fjr", + "/q+//vrh0697h59ODg9dRV3xAYF7dAIdqpBBICCf040CTMdBoXNzwwUEHVoFaDQ6Pvr46+G/9o4//gL3", + "Pn4An/bA8Sd/7+PRv3458o+88fjfdP4ZeD6H4YQy+YdfNOCksb8omgKAiSP6rwNXc/yA6CT5rqqgG3jj", + "OnqAOvHwHKMEYt2Sb6eQsz8lVkK7O6L1vvUGzyABPuAkWXNmFCjYKFeu5+RKBtt+cX+PP32qw2EGWycT", + "LxkytEj0PBgTriMM4F8p5MKkiE+uEHDMLkedMxSaibXjPu9FIEZ79LIwgeEefCYJ2CNgwqB4BAGi++Ke", + "ZCvupCny3dcSIXF4dev9nAYPXAfrPcKQGJcMH+VdyEpf1QxZq7nyGe5eO+4pPYcCC4D6fhGkxtuRX7hS", + "xm1NtsdqQRRCtqQo9NIkgaH3co5miAxJAgicvPDTO53RDqfdi9Pe+X3/4v5qcPl10BsO3Y57Nri8ur/o", + "3faG127H/e9N76aX//Pr4PLm6n5weXNxdj+4/Ny/UPY4h5JvhhQPZoxyxuiHeob00yS/1D1NkTdlvMll", + "BsIOI8d9d3EijmaIhCjoyIkYQvUCosvFA9eJl5IPbHwdY8wjDcdRiGEZa0SK3DLGCmBVg8FHMcNxmkTh", + "bZQ8jIPo6TpBkwlMjPsIfB9RKEDwQxHMpYG9JAp7z3ECMRY6ZYlwaJMLsQHlYz2MU6IZuSR7aLOODipl", + "ghI4d9nSq8WAfrFz1JK1ceRxkJEOY1Jlf3L86MdinGA3wINOP6T9H+CLsbuBPrgayUDKMTO8GCq3AiOK", + "SBQjr5uYiHQG/jcKHXkwO3Q7nH90Bxf/lKfv8GLosDGWYe7shJqh8H+OOjPw/D/Hn34pH1UZsGZe4MaC", + "bgAT0psBFHxNojQ2SzXaBOtESIAwoWvkLeSVNMGu9X1tgeX76BF22IzltQtQ61Zeo5zwwbV7zT7JbaVr", + "dUgkrBsr2Vu5ro6bRAGs0xH4an7A2QgmA9peiw9XDFaHFSM+7FRMbkVaBRbYMnCQTvST0i+rn7QjLKVM", + "mL4aLtYMKD0e89MF28rY/NcrpXXBElU8bLT8pFguylaH7IhpNNcS15EZJNPIr1duFXT94F0UVaUsMzjb", + "+tqPT2Kgms/GY1g2+A0m9ODUDmO+E2Wg6Qaam70Aq9jSfAMz5NUS2DnSsWkMJijMzFtV6L/KWmZaGZM4", + "T02uJyrBW5nhdJuu6O5nvS/dm3Oqk3ev+gYtXBngMvFh8vnli3zEkMOEUhmCpYt+PhLTiDapCi2lySzF", + "kCR7GKg/SeZZrQxu/6woeecfhMRzkXEhkv4HaThMZzOQvNRBxrbqttytgiW5qpct5E5u+BnQGf2aaKnO", + "P/4zvLxwRi8E4n/W65yZtsmm/74cDcgxtoD5s+WU+V4Cui1QVoAoJMgZSqAnQZJSBGDP5Q/FZvlhkkAW", + "omcIQeJNtaeRid5LuBwDpH2wYHpZSlVCyqq8lZOkYdEcaX4dj2HoU1hqBhbNmoz8VwrTeoh5qybjJmkY", + "WkAsmjUZGaeeB6FfD3TW0H70jA5xla1QcwVh3/bVO9YCXLDEmWIWvIoB8j/RSCNqqxwvmMRVXC/EOfNn", + "NNpfk8m8NCYmMLaXL0MCYx1iK5VVgmYwSol++eJj3dIfl1VUHxUFVd5s2NJ1mud/otEg1TyJeMzEHMh3", + "ILuHjqxT5gFkbjKAABvuPGMUIjxtNvWfnCKrdpQSLW9p2L0liC6BOA2I1o6ICUhIs8VgAkiKLdZDTxDe", + "VtD3IA2bkTjd/OZU7j3ApJoFmixXURvrQFaOzrmey1/s+CCSQLJdMHPNMNsmqRxc9S7O+hdf3Y47uLm4", + "4H8Nb05Pe72z3pnbcb90++fsD/6UQf/WaRFUvdK7Ndg6Q8131WyxmISZ77HZfr9RpS57otXqdRTiok0X", + "vzG8RWhqX7wU2MREOuJiywyA93ALR9MoenjzRSqwrGqJ0eQchbCRjwY9Qtlnqj5QeSIP0iCaOAEKYZMH", + "ee7IqZ2DDica1Kompt68hcZWMIct1Xkh9y7NZrjLUXUOH2FQNKh8vqHipX/x5dLtuLfdwYXbcXuDweVA", + "L1OUcbJLjdX+FyDQCRLx/e3vhJKs9NKDf1ziXlgcoeHNUHSuuBtqEKA+2f90+QM5uY8Z7R533BA+y399", + "6LhhOmP/wO7J0SG96hU5q9BZ59kjWjgxp8Js4mOry5QCi9YNDj6XR/5gN3K+Lq1DUkRAoF5daVNmcQkQ", + "Jvy5IHcjP7S5u2kk1n/pvfUHJAnyNPI4TGdXdhdrRsfyer1vWu9/re7SfCzE/ZPYxdo44MDuEs1HFFfp", + "fT1qCg8nGaiFWToqQnTyfwAIZG4eZVRa2VITKv4DOoBWRAcAkwEco8Dwzsf81IQjmzoYc2JLWEfIXDXW", + "4O3HJvoNBKnh+JmBZzRLZ6plg7/cYYc5SAtTrNj1JxT60ZN+21dh661B9KN5HVKaaNYxAz60XQT/pp+C", + "f2PLoHuJQsXtJkczd+UdR4kHfVtHAuV2oOyXXG8GVYHS7lS63oLDMOcx7XGYfV7iQJwfo3QkcmxKrCmo", + "1I4GPRiSoXKLnXu/YeCZ6Jl/dXQuVqrZocm9dBE7xBI2hLUZCgRKc0tB6do87+ZXzSPZRnTUG7WAZX50", + "rfiH9K/340Q6gHEAXv5W/pp8SYo5BhtXVqCHt12f0vzT4WHNeufgNq3aZDhRutsL7Tn7li18ErqEcjlj", + "9gq2auCWSEeds3FoBpxATG4Sg651Mzh3SORgGPrMU05cc7FDovU8hpsOiDREf1FtwIchQWMEk0ybFAqQ", + "CGrgDn1qLNAIBlE4kRDXyMrOOv0J7QyalT6CQ28K/TSACqUt6ylrIqmOS7grrv2R1sQ5Nh/8TlmXvyrD", + "rHAmp38MT7/1zm5M1tps5vW6iG2ps1d59bnHV/UrQlPaWJ0v2CANT1VDY+NnCg7Apk8vBQCbJQ6tlMPb", + "Uoe3dJrLiaLSX65MdFtw4dLIASvPOSMHNXKfK49iupSpOK62WQ7hDMTTKIHDICIrvpEVbjv6x3JugsBB", + "xA0zooe9mX/B25F4RzUti352klQurF4dUB9E6xeKgkB6CtivtCSaNMYS0cQe9DkGz9HSUW+A86+n8tWU", + "ko/6cFR+6pmCMISBCV7x2UG+3jKF6eDOEx9df+fnI1wY/dvlFMzPfcFJllJXwcy0evptiaXT7uZ1s8GX", + "WfRWKNp2qrBERIbuIl10FDLUHjQExia5p/dvmaLAT2Dxsb7mnr0mn5QYJKWY1FpIEgh8MAqgaXPl9yw6", + "nQvEWjJZylXKMIOZApRVFMhBunaIDeSvVhVbvwbXqC7pxVHhBVCxdq/IgYoR4a3J/lBLA4Xu+DRKQ6IH", + "FxqhXMR0mvepwND8XbPgAWbhQCT83bL2q2e7KCUmEBfkSPa01x0TmNgjc+UOabxLxc4soW3Z+mLStiZx", + "YiFrmqw461KxYqr6GPzgrA6njAKzlVU6nQnUdRNvih7hTsql5pfurRIxEb1R6TtVcH0CSfJSIUXXxo/K", + "NWYzLFFxY1CQIPGov32a6H0bLvhFBtQ+q4o2hhA0z0wFZuuqr++gOLFpSE7yoMV6xLsU60HpBj7CBJGX", + "Jr2Hso8V3X1BCSZDyJVke9o7B017NXQP5reMAoBzM2eYVdCkeu7x/a0g5m2JniqQaS0h5yJd2pAGPW4c", + "v7+4vL+9HHzvDdxO/uOge927P+//6F/nxvP+xdf76/6P3tn95Q2zYw2H/a8X3Lx+3R1cs7+6p98vLm/P", + "e2dfuVW+f9Effisa6Ae968Hv3ICv2urp0Jc31/eD3pdBT/QZ9JRJ1LmH55e05XmvO8zG7PfO7j//fn8z", + "ZEuha/pyfnl7P7i5uOdZZL73fr9XnwwMTQSgWnOajmMUpCqunGKBg/51/7R7XjVa1VuH+Oueo+FH72IO", + "8Q3eQsTftLUOmDxB5XzqTJiIFAY9Q6KJW5mCL3JYa2klmLFeeF+bbw+EIHghyMOXMblMScWoudlhCrAT", + "xQT6jrhaZoPo51h72i5TeoOl8yPUJ/kypjrQJg/ZbNaQNUWvmZOHaNe8BUJavxe6JCuTaI+TnDtgzw6v", + "xVWhcDKEhP4Hb45FeeKD3nOM6C6zsA4GTPX4vBefBjtPLPsei1BxQAIdEMdJBLwpCic8DR9DcNX8MvkJ", + "JxLmrLYgFHzJMt9hGR7m3VaJC8Ui8wWgIE2gBSjMcUIFRDXkYxYBrJ8zAJgv1fzIkvvBglDsLHtoEUHq", + "lh5v4FkS2Rdmqwi9F6NrqzOWTRxApLumoKrV2tfNkkALsFku9DM/tPXkEXrNUi5WPhDJhJsi2fImk1Au", + "lqyo7plAMJTpkUN+NmONt6h65mAjFDLhLXBiFrIs5XulpqCooZ2tOUoEKTc7QfieluF/M4Kyz3ZCWa+u", + "9Q2GCe9xlY4C5FWRAhuvIt+WCvPWbLrYv0U2fSD2Sd4sLm8v2O2oe/ajf+F23B+9H597g4oLQXXUDLNr", + "Y7NLk87qUXYxiwgI6jBRgEMxDFTN3WS8eV/KDAGS8lUsZvfl3m/8RqbeJNmt7/JCcTqrQG9BrdFpdiCZ", + "VYSasO8O887Xy2AeFEMi5wkkLGVDSd/hvfWhG82icPQBOKuJqeFjm5eoh3+5dADZttdzaEYkdhE1dRvW", + "PJBmBglMZDiNPCr5WM4/0D7cd44cH7x0nCPnCcIH+t9ZFJLpPxd8lc/Qow2vMUtWiairKECeJmkOV8Gr", + "bqVZunLeVKMXNJCsRfarc9cWwJlXJww6a5eZTDpxH7ANOAEb/cpvWLL295isVF15TRDMSvKEGvUVFRDz", + "/u+wCa+1QbytDWKNtoG15E23ttC+GrnpljkFmMNv8BVIsS62WyV37lngIOzErLUDQt/xQBhGxAGsAgMr", + "7SSzkc0jXgsd1l3iao0YwPcTiLFqzCjoZfJ2XLZp0A/fAJ7qpPUU4Kk65P/Bc9MJ+c1VG14ZaciLDDmn", + "U0CME/4GEzRGdehlJhkqSx5Fc1GdqwCDnqKnAJtrgGnnAFnRLwdDssGnBh/hOAAvBYKW+9fY+lHE7p2B", + "wIpF0swpp+GTGYmMB+FTjjWpo+lhX+DYzoqwvTKfrCpAMiAq8bccDKUMOlmJOBVPJpSfRxMULp7sfDH+", + "Xir3+dZhXK4xrsP1AE4QJhXSfRvRbXfSGQTDFu6WLFNku2mqeoynKMa7apkrWSo3eJqv45Thk+m2TcSM", + "cFVqpZZnO2YQsQ9CDdOyRWqKd5Z90yRY5GGejluLEh68uGRFB4tFYugl0PB2yL9lWXkED9ObkNMfsxqd", + "cRI9Ih/6HQc4CQj9aCY7sSCnEXQmMIQJEDFdavTj8dow3hzN/nYS4GJ7s2lSzuCsRTaVyluShbIofqxi", + "OAtdjIwp/F3vATGmpIfsqpfnpuJDqUUoGz35WgRw60DPQ7i5P/qptnQ3Bfnb9fWVwxuxmt2SghOBfIsk", + "YgpWMpgLE99ZIryahGT6KdMTAbcfSpqXra1NwloKWJh2yhHAX3vXbse9umR17a5urpkN1XRC8vgmXBWX", + "i/mLgbA0eCB0YphQutpv5KkFHgEKwCiAMsyoJkd7eVr4DL2UQMeTFQBJ8KJ/wqCqBivjk/RrSqay5xE0", + "CaHv5J1WUTx1yQj+AIxggKufd1gbxlL5cZAdA9ZJZGByTsfRbVkAMPkGQUJGEFiEJYutYq91mAIInKns", + "va4ceYAzM1UPepiAUcCiNrYQ0hl4NhO+JpXfcgywfr3DrG8kpexsuuBQ2iaLkM+f1xoS8FwmOF1QXBrS", + "LemH48iOGwZKB+ZfG5lOAiyTHvCAfM6ICy5kLoGCZiF51Jwu0wA7Vkt7I4+E7ul1/7ceywGc/XnVvRka", + "3M/5DzbIuqYtXzuuOAyNKQXEWSnq1ReBrM2LIHrf1GmfN4NzzfBNlVHWXqtIKMKyWTJSmX6adl11boAK", + "NwD+/F8zeXX5pAo8vL1txKh2Z0AOisw/5wMAwkkq4qKsxcLw7DvmBw/vLNLV6IMA9YqRkEi9Z5IAffkR", + "/8E8bGlxDCJV/bs87/KYjt+vvzH/oOvfr3rD00H/6lrL7QonK8MMe+dfvl0OebTNj+5Flwfa3PY+f7u8", + "/G4cSPpKLV/wRb4cahnG/nGMPT5mz2P6R5U/o5FBsNIvOoCs6FOUEVlZyEKTs9mIOWlK1ahHYLL4WrOS", + "ykCr/ItKM83TGwpGyDKhVPnNzMtyk/Ci4ypVxMvkOoFE+Z4Ftsy9TYYybxF/gJ5AghnuvLyrM6F9s0NJ", + "eVLfN3qnqfXMKysvmuqgN1c2c32y+F4/X7/qw3H9HV1OPb+ajharVVvUP9M9CGcA9s+0OJS9v6OwcCv+", + "cnNxet1n8vDsZtD9fE51oLPu10pJRgeRB10jsmWza/hAftefnkulcNnwwcsEvZ3VQrQ2eqoxJvkO88h3", + "jWyaS91f5rEH+IL1dyE5PCXLiinm7l6UZ4GDY+ihMfLySZx/xABj6DuPCDhjFBCY/NOyMsBtsXrRyvM+", + "igcWY8a/zK1FzUh4dKikt11bxpbFUlLytBf2dJmnbFnhmctTsbxNHkc+91CNk980CGvLNa5NJ2mTBxT6", + "n18aDH6t9ConrGyoh6w95WWWG11d7F21MNmSq1hVNuoq8KvKCnSHp/SY7g1PK8/pfJSKWjsqLRekmCIZ", + "ayYZTkEMW9ndyu5Wdr+l7K7J6vw3Eu2rzU9eJ93YZAvdd4qEYLj0zG2o5tE7Cq8UjtVkBYtCmb1Y20AU", + "nlhPfszbBUuI1mwxPmX50BYpirHOGh7zNS1qFmG83LFER03oSA51yjvWaQ9zzUvzC37QhjtJXtJ+FDyj", + "/SZZT/sx50Z94jPjaq7BRIe/gJ/lyxtNl7Ye6j2kOIRVBCK4/jShGuZYz/gVaTDvkYHd6iYUKanGhho6", + "9+LRZtXTYv0Km2vTc3jTiNa8QPwiA2f4Wa3Wxc9BPfryo/Fe2ISbo5mHz6wgcKb+baAKDEXNmGfZgm3Z", + "ZkNUczTV9uEYpAG5SlAkU3/p2J81cmLRSsfAtdbb/PHjjZ40skyZFqBicfZf5xmhNQos8h5eTM/k9JuD", + "hU3a7r1E4ekGrIWVVw/D6yz/aAWEmoXA1jBbqSyblVgJc557Uxnorp4d2L6u0rLdhEDeFcL5u21u0i5i", + "fJxA5ktSkU52Bp5rWjRMi2lKasmdkFMqpKj6PuMQjiBIYNJNCQv8Yxhlspf9nG/KlBCWysyLogcEZXNE", + "d5X/JJ/7Ttwpc99TYv5AjL5D4RGAhBOAxjOVd3O6V32WxpOwK3rx14yy3KP9w/1DRpgxDEGM3BP3w/7R", + "/iGLMCFTtrQDEKODQORenuicr7/K10LaKoQYO9n1kO4ikOVS3HPx/Stbl3SWZbMcHx6WB/4GQUCmTCp/", + "0n2/iEg2Z2Fn3JM/7jouTmczkLxwCPOG8t34DzG+N4Xeg3tH+7O1JhD4L/WLpc1Q1WoHssEql8uAYwHC", + "PCCWJGA8Fvl7qlafQVu7/MejAyCil/dYsMoeey/CBz/Zz+pvrxzGABKNLn7GfscOyErtsiB5HpLDupcw", + "NpcQgY/AaDEBLFsHBbsi6VVpBoddJRl/UXrOuau0FFflfm4G5HJx6bvp611p7z+WsTVMPQ9iPE6D4MXh", + "KPULdYpLyHvtuB85lXhRSETiZRDHAfIYRg/+FNlr83XUnFYszbkIu5p/qp6BgGIB+k6UOCPgS1dxDsaH", + "lYOhg+JLlIyQ70Ouy+b0zemkiswkxYskWXcd93kvyyfAqkPxDx0NYdyxSxTxNCHdXHlfhsT5CH8PEmf0", + "8DnisnMlxGCRLEVDJpXYIpGTSpwXsfGqF9ErWYghp2kZ9oIY4IC2YsBSDHBqWZ8YUA/IGO3x5CgHP7O/", + "2WkYR1ijNAzgY/TA8o12r/o8rYpwyshmnBMTMWJ5W6R5gHa3kRLZ8AaZIGHdquMuYcsTdM6g+3sTNW5C", + "1YJ06MZei52TZJz/VkXJ2ZYXKNgLotQ/UK+yZm1Xtsp8/+R1gg3ioBATELK8ZkUiPqWf5SuyWQleP24Z", + "IE4aZmFbW0NgNVo7R7D6LCe2/ofyIPO8J4fYi2L+pi1ONGW/uXH14Cf772vVflMpxVrtlzaU2Vj5RtZK", + "IjaEUTlhXzcqhFa32aJ8RM3hnUCSIPgoxBrHBtuxVrYVSFzBTE7eHMUVUo3Tz52Zwg/qxBrblkyq1dD8", + "WSbA3jvdnzESbml/u2h/Bhc+w42n9+YObpG6vglNZUfijhzkqzjC6RgHSuFYbNzxc4TpBShwCq1NG0xb", + "94sN17bbdC6x48qUDTdfZi0orG6bCCHberYRc5tQ3n91k1kZ4oOf7D8W5lVnqJYtLm2xWova3ppaGNN4", + "lDEQt9JsWsTJNp05R5sB4yYEKZlGCfpf6POJP21mYp7Ag+VBAkEQPUFfb6qdp1rJE+z3qrOPE12RY0J8", + "8BOH2IpbiqW3y/wS4gZsMlfH28goQqRuHZvMIaNllC1klBLBZqxyMaxklBBr2IR/flXNAHqDJZ1X3lVK", + "LNL40cLEGRm062KOjvmG9gBfFr2iKTAcf/pUAOLI+kpWwaBxEtF/QL89w7aINU3aPSLTdOSAOJbUXj7W", + "eJs5fiQw3ktSdniJP18PAC+yW6fZi1YyrlMknimzKo/XYDq3HNiCaeV45gNNwLtpxhVRrSRy8AOKJWx/", + "pTB5yYGLxmPMbqwaUFBIfvmoDXCtno5XUhm9GKZknxvOuE5DjaaE9AIWG/zOrTV01o+bmbXAdU8AM+Ez", + "jtLQ190nC+yvMH+mGdCfBmnlq1DGwvUyKXfLNksk3qaBPOrxQVtp9G6kUV4DvJVFfx9ZpDD++iVREE2q", + "5RB2gmjiBCgs6Ubld53zaHKOQn46tmJoO8RQx1zhKoCPMMB0Xp6npGJi1rIwc6VFWtAB7cUD7g0rx5Ae", + "vA6bTYFjHCUGQHiHpoAMeS8NELesGm7kMNd68/ojNXlAw8kLiQcMeODT+1mGg0oozpRmi0CS91/vIaVK", + "g7rziZJkezgZnjXZqZBJYeUsOI8mzY8B/hmb7VQ8WT12ACueY3Cm4+5+vKm7Hk9VPnixply1ayqJRGrz", + "N3BErSVxkWhE8Txt/UwzEud7nRNbnVepjqIzUyzPblPhXc5cU54RJiicVBP47phlN+AubseEeZjZmzqG", + "t/y4Mr/vBl7elXypj4Gq9rEBmbZq8kHHdfEgtteRreDgTQZLLGA5MG9CyzsFda2KWu2ZqdNARWseKJVp", + "b+/1cFM1zNXFQlmroEdvHAtVPgHbWChbHXWpWCi7U/IAQ0L/i+vjpmUXR3apjoRSyAWFk6HoY+mM/U6O", + "SQUxS5yR6p60rFRw3zWiaWV8lAUUVj+0ZfF92C5+sNUnM59jhg+cZ4VtxCcyeUhr65tXHrMgRNwsMrFO", + "YVwgWLbVERkCJK0rauE6TRjzk7b8tSr+EoywYOhv9YFj4dWBWQhJwbWD9zYEye3KWfOen1Ef4IvVIypt", + "V5jVKqMeIwOWpKqckNUMk1IFxQq2XFY0BlApx7IYiEkainRP0ApW2db6+VOfwviNnqTZfr7NgzSbegue", + "o1U41MfoCmLJQi0f4IuoWxcDlJToJcug/gdlt6MT1vSIF6s75v86puJdtx5Nln4tM9TmSTYvQwYyW9G5", + "SFZtYMnV5nZee4xz6wWwkpsBlD6elpHNtibkqkD99grAECCSIVeahTl/v40bgl0KDdXmy6Ny3r0X6PG/", + "NzOrTFwr1FP47EHol4LUxAVFRkxZ83n9xeRglAYPZrefz2nwIMgD5zIBVwoF2ucdCwa6/IbCAb+ldMDN", + "xUPrJb5l8oGxqSok8IqlhMfKjVS4B7Lv3JChVEIsqLgmqcHdSvgI71mhYAiwVyjEhSGBcQBeVi423qyc", + "zHwW8BrRxJAG/ZzoWiG1rUJqwCh1PfKJmdEsbazcNmdhZ/0OX9pnvdzYuNBtnSG7vbHrbuyOsP2ukg/E", + "aVCRH5d+x82O5oE8Yt7r0cwRsC1H82rMahy4Vqt/bwcmCh8RgU0drGUvvdNYn31tz0rpK6bgYyEvMYnt", + "1jdM5z6d0+KafKb5BJW03pq/FS9pjhI752iO2zf1iObgLuIILQijZUu993PGN6tx1RR8Ln/Y4/9uVgrJ", + "gpUbFz/aLn+aIl9Vw7aXoWPXz9Za7tVUdtoy7tVlIcz2xxS9XdzHJhWTLDhhx9MNbiEnrDf0drFz982C", + "by05V1OMaZs5VwTFNubcqpNvBmcjUT22wR1N9tKz+A/2tb2jSWpU8LHQHU1iu1UGdXe0nBZXowuK8Q5+", + "8j9sUlADAYQzTqJZXdgbp4a/hyoolm2CjX/efKLslfPuIjrg++DaLcpyd2FIapcxaWFjViYv/kphCvdm", + "VHB7uLY6EWvtiNbZK3KlwPgKyX9prx9iil2UGTsVGbBLzt7r114KtLdYBFhW2l5ySSsT31gmUnGU7c4s", + "EyxSIkrOWVQmJoDAPfbgZOMqQVvz56k6X4kBIPCcNmzj0rY1Lm1VMUy1mFxnpFJGZ1sQrTQPy6bSZxZ5", + "rYEzjsLOrTfO3J1VxU0ubimqnXP+66ISV/TYi6MAeS/1KVtkB4d3sEnYIl0JrliPNl3LgQ4ti5l45naj", + "NfVsPOsRr0JWmailUOEMVxbma42fPEeLipMmt4c5VLe1kraojJnCC4YymDUl/ywY8QATkBAjOw7pV36O", + "XXZTMnXYZWWeIW8wTPibCQPokiKU9dxFzvxweFxTYoyhTBwrBaxMIfDFG08QcYIp0sr83K9zxbEo2UUP", + "CNJBWfLjQrUshtLijJIQ6A4sTAd1ebPm6uhhXVm7Vg4LOXwxLJQDbiCJ57HcyuKtk8VlRrCqKFmbrsui", + "tGrrncgQUOSvyixdq6PZ4qTWXoZtjdgtZmgj51lydOWJKupx7G3iyUqUCNu1l6v1mwt0iGlmM8jqVhV2", + "pn1U2YZHlWxvyo8qS9onNNXTKlk3L5TmjF44Q2lLN+6IHa+zrRXcNlBncUH50EqErSuwqIqIlRRVtJIT", + "tTk1uoTAWSySw7C2FjVfdy2ZRitBqhzYEGbu/UKEcCIItu+C8MaPeHWMsimGTiDtWBF7z5KU2PIwa96y", + "8DZmA0jSUGxVTfAFCuOU+UPwx13dcl+3QlNpcwFUyBe24W8hUPI1VdoCeDPLovBfIRnyYVvR8nbaQbMs", + "VwZLgxiuvVBs84VC7tJapIZ4i997ipKHqoCx3K3T6CjR+kjkLuocFbcMqRQhVbU2KDIyN3re0ZHb0Rrx", + "t+1VTiH/xVOFiEFMLPTuX98K/MOxsaESOZqZ/UaJPuTWtpy7fc9vKuMtYqznUrnaPE9PSC68q31v87Ph", + "3R+WOSbaSlRLXzVlCFAxdprjeNFHKolofr1sniFSrcmjSRSpFNJp00Uq6SIVvOAaM1Gh6tHbJY/UwW1d", + "ZE6xIBUIpr2ebmVSyeIelYMMqy+oTQTOT/Wfda/jBU6oPYEFme7yY/kc6+tBUzG4w2qC2K5F45Xbx3Nz", + "tHDRLl0fKdwp0tTi/HzAnjhqTdT8IYQztAr0fg1f99noLXO/PXPnuRGulNIQHMZlrNlFHLHtbg3aGzJo", + "36q4D22yEuSb1FRlWJ3EwVMQwzXpEUM2ditvdkaZ4BvWahR/I40i84i3KJ1dqJodBNmrG9boGlWsz8Kx", + "+AN5T6bbb2XAygE8B5g4/TOWtHIKnQDIHTQlPwGY9H1j9pMPx7rsJxvw3GtSZkOVPK1vzZa+2C8gS+yf", + "8+1kIbZ6mWAt7TSa9nUi1xTa94nVqwirzE2WjWlZadIBzggQb1p6n6g65N99iUnVtM+RYeu/Ktyqy9b9", + "d113MmgfPGryBHGy2cRjAz7wkiisP0RpK+fPaJQDRRI0mdS++J8mUbhrJ+v7THSYbSzy6bQTSDItbr8m", + "n63prrHqfLu7lMy2Ir3i6MUZixSOK8vyqPIZts/0OHpZX7JH5djccLrHAjKW0GHbg0mjx5ZOgjUptPRY", + "OvhJ/7Mnf7WrX1A+qqyt2ZRwdryaQbZ6E1gFjG6+noFl4QHtJrapJOcLAejR1MwAXSSIu9dO1QvRksy1", + "yz4nW8xZazo622NzF6y1jQ7rFcgHu/Ob0YCtaVa1F9c/OLf3yG2+R8pa7raXSNZ+vTfIrb7eUuBikFCk", + "GR4h58DijW9VG9+G4NOEEGthE899mzILFNCGCSAphlb1eGTbRa60Q9ZXXC5tgHtAoW8FFWvYGKTvKPTr", + "odl5CwpBM+iAMQW05Ab3BLCMSlOX4B4fHh/tHdL/XR8enrD//V8D7kX3Lp1AT7w+IHCPQuHalpejEI/g", + "OErgOkH+zGZYJcwVWB6jEOHp4jDL/hvF86qAXimm12cRLJvf3q09cF53bK81a3F8W48hkPm62eR3BY4A", + "jR50RfZXE75aurTucoXCVg1v1fDNq+Gtbtnqlm/izI6XrOjJBFCbebr+fF9Ddc38nKeg+mlAj8caq2HW", + "chH74VB2bq2I22xFXN+9KCOAnXKXaJWpVpnaGWUqX0Yuqldim7UqlZ4xeGal3XCt8bKEaa0Oq9VKDBrA", + "evWSg5/Zn3ul5By1Xkl6kBvqLDvum6TBgTEZrRbVW+uupN/d1l9p3l/JgKdmDgkG2qjxXFoJA+50gZmd", + "4r51HsftUbzrfk3rlSN2ikEWf/+ax9BUlqAETgifzJE09oE017zD7mTMrb69MigqA+4rQdtocUzNNjQp", + "ZmHc/I1mLGzm5Kkm+jXD34rFzVfs27osiULQVVH5eoIYFVlcsCPr5bHUCIREttcHS6rEIA1bKbxJKSx3", + "QNmAJvLXqDdssLpQc3VUlcDv8qbZil8r8SsUkjqd2Dbj3CLSl2fh3vOiNCQ13jqsjcxpJNPHg0eAAjAK", + "IBPEiuTRX8y/QsKzfONTNuPOS+G61FM7nlCmsFkL3sI5qXDyaQ3jhuf6ApIWS0hXZP8UwwQfeGmSwGrO", + "xvyiwBs6tFuJe28wTL5CcioGWyPd0Zka0hmDuC1k8vaFTKCXJoi8MDHuRdEDgt2Uyq4/7qiomotzK5Kb", + "JHe2/RoyniAyTUcHHgiCEfAejOR8Gs3iABLIafqSzu9ozyM6ES/j8JUNfUlxeSqHnyPwD4fHNU8LnpjX", + "L887hcAXNcuCiG+GtkZeJtZf55BZwJ1cYHEOS/RhAhKzKBjSr4shjnVtjjUGz/pxxqBriLAomgRwPfTG", + "hv6b0xtH34rpLUfc347eUPiICLQpbCi1Yd6BKd1Wxzcd4Zr17Yu51niKqxNZuVIECMuNKS6w1Retj1WW", + "23MOeznlXWvscwXaOwCeB2NSUaeffceZsU1MUqI2dfN5H3c9piU+OJ+ovvBeBfXxlevor3UIyKvPMySV", + "9t6evhLIUg5WVOSi35vRF+/jrqu+FR18BfTFV97SV031cYqkBegriCYoNJPVeTTBDgodwM7G/QoF45wN", + "tB5aYkcwHX9DFUKt7tFBNJlA30Fhe33equtz8VinVGN7Tw6iSZSSGmaIUmLHDVH69rYeQaPRltXLaYm0", + "Rhll1GNLtjM4G8EET1Hc4AqkdLK7BvEj5EfeTUQUrZXA9ZM2vw+pKGrvRIvciVQM1pNkDDB+ipIKpwQu", + "JoUkdWT7KpF6Jcdcn45xOgXhJJtom5QNj0HmZ4hqxfkOiXNOVkVKt2CiBE6oIEuqLn28Ba7USDKXnXWx", + "jQRjmxhGIq995toJPV2SkK3OgwPgPazlhWFIR97iB4YaUdPwxeEJjqZR9LAnHFIOfoofLKK8qNARrcsO", + "K/x3+wAuMZDZISSbaMP+IJYRURK+VsS8vYiZj8JSydToBSJa2DHHgcCzzX1LNpX1wao5Rhyh2DZdw9by", + "zWr8qDj03I1KoIZiZiAmNDnBZtkoBXay7WrZc4vYk10vS1vUlEcz3mR/vFqU/NUYNziFWYY7CmezKt9F", + "TYTL7nguNvYhEytuDSsl58RSDAjVv6p9EZmGRqmQeNMKs0klIfNWO0PLa7iVMgQUzg3TWSEwkEqUbS40", + "wpLXOGQtp+k5TTDEMsw2d5rMO/lb5bvIPJGtAuwb3Iu20lO+Sa6IDMA2ZmfzMTu665BCMQv6yXfqNCx7", + "Tmigcr2HgJEFg0Ra3npr3lKjUZZhLBu1z567mumBW8Fg66tnzJFhGz7Lta4il21aObSSCPPqYSsPjAri", + "csxZoyZaJW2nm1TMzp4x3iNMME+gaTwpGyRp3wZ+1iRK5GkOV1DFZvEaNnrAJkmUxiz7ZA6C3CgjKKzT", + "d/ji1mYGWLOQWDIjtCC9Nin0NmoTC2WhbiS4ZLYSo5uBDLRvmj9kobQhWym5rjXssu/0x8y6jVNKHdDv", + "MK4KAIGYZDyFsDOGxJtC35SjOBf8W65ICTJYMBfJm2UgUeBtlHqkTTjSJhzZYMIRrWgWsgFbvGoVTnIr", + "sfwbb7xDJpi/g1xes5QTm7qkKtjKu61SAXNSXFQFnPchG0GQwCTzIetovcpg8ijlQZoE7onrvt69/r8A", + "AAD//7hJKYh3/QEA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/v1/server/oas/transformers/workflow.go b/api/v1/server/oas/transformers/workflow.go index 084fde6af..2caedc393 100644 --- a/api/v1/server/oas/transformers/workflow.go +++ b/api/v1/server/oas/transformers/workflow.go @@ -148,7 +148,7 @@ func ToWorkflowVersionConcurrency(concurrency *WorkflowConcurrency) *gen.Workflo res := &gen.WorkflowConcurrency{ MaxRuns: concurrency.MaxRuns.Int32, - LimitStrategy: gen.WorkflowConcurrencyLimitStrategy(concurrency.LimitStrategy.ConcurrencyLimitStrategy), + LimitStrategy: gen.ConcurrencyLimitStrategy(concurrency.LimitStrategy.ConcurrencyLimitStrategy), GetConcurrencyGroup: sqlchelpers.UUIDToStr(concurrency.GetConcurrencyGroupId), } diff --git a/build/package/servers.dockerfile b/build/package/servers.dockerfile index edad08abf..96c1f5418 100644 --- a/build/package/servers.dockerfile +++ b/build/package/servers.dockerfile @@ -28,14 +28,14 @@ RUN go generate ./... # OpenAPI bundle environment # ------------------------- -FROM node:16-alpine as build-openapi +FROM node:18-alpine as build-openapi WORKDIR /openapi -RUN npm install -g npm@8.1 @apidevtools/swagger-cli prisma +RUN npm install -g npm@8.1 @redocly/cli@latest prisma COPY /api-contracts/openapi ./openapi -RUN swagger-cli bundle ./openapi/openapi.yaml --outfile ./bin/oas/openapi.yaml --type yaml +RUN npx @redocly/cli bundle ./openapi/openapi.yaml --output ./bin/oas/openapi.yaml --ext yaml # Go build environment # -------------------- diff --git a/frontend/app/src/lib/api/generated/Api.ts b/frontend/app/src/lib/api/generated/Api.ts index 10277e4f4..2daabf3fd 100644 --- a/frontend/app/src/lib/api/generated/Api.ts +++ b/frontend/app/src/lib/api/generated/Api.ts @@ -10,12 +10,11 @@ */ import { - AcceptInviteRequest, APIError, APIErrors, APIMeta, + AcceptInviteRequest, BulkCreateEventRequest, - BulkCreateEventResponse, CancelEventRequest, CreateAPITokenRequest, CreateAPITokenResponse, @@ -36,10 +35,11 @@ import { EventOrderByDirection, EventOrderByField, EventSearch, + Events, ListAPIMetaIntegration, ListAPITokensResponse, - ListSlackWebhooks, ListSNSIntegrations, + ListSlackWebhooks, LogLineLevelField, LogLineList, LogLineOrderByDirection, @@ -53,12 +53,12 @@ import { ReplayWorkflowRunsRequest, ReplayWorkflowRunsResponse, RerunStepRunRequest, + SNSIntegration, + ScheduleWorkflowRunRequest, ScheduledRunStatus, ScheduledWorkflows, ScheduledWorkflowsList, ScheduledWorkflowsOrderByField, - ScheduleWorkflowRunRequest, - SNSIntegration, StepRun, StepRunArchiveList, StepRunEventList, @@ -83,8 +83,8 @@ import { UserLoginRequest, UserRegisterRequest, UserTenantMembershipsList, - WebhookWorkerCreated, WebhookWorkerCreateRequest, + WebhookWorkerCreated, WebhookWorkerListResponse, WebhookWorkerRequestListResponse, Worker, @@ -98,11 +98,11 @@ import { WorkflowRunList, WorkflowRunOrderByDirection, WorkflowRunOrderByField, - WorkflowRunsCancelRequest, WorkflowRunShape, - WorkflowRunsMetrics, WorkflowRunStatus, WorkflowRunStatusList, + WorkflowRunsCancelRequest, + WorkflowRunsMetrics, WorkflowUpdateRequest, WorkflowVersion, WorkflowWorkersCount, @@ -931,7 +931,7 @@ export class Api extends HttpClient - this.request({ + this.request({ path: `/api/v1/tenants/${tenant}/events/bulk`, method: 'POST', body: data, diff --git a/frontend/app/src/lib/api/generated/data-contracts.ts b/frontend/app/src/lib/api/generated/data-contracts.ts index f8c316a27..1e05548c4 100644 --- a/frontend/app/src/lib/api/generated/data-contracts.ts +++ b/frontend/app/src/lib/api/generated/data-contracts.ts @@ -9,6 +9,27 @@ * --------------------------------------------------------------- */ +export interface APIMetaAuth { + /** + * the supported types of authentication + * @example ["basic","google"] + */ + schemes?: string[]; +} + +export interface APIMetaPosthog { + /** + * the PostHog API key + * @example "phk_1234567890abcdef" + */ + apiKey?: string; + /** + * the PostHog API host + * @example "https://posthog.example.com" + */ + apiHost?: string; +} + export interface APIMeta { auth?: APIMetaAuth; /** @@ -39,43 +60,6 @@ export interface APIMeta { allowChangePassword?: boolean; } -export interface APIMetaAuth { - /** - * the supported types of authentication - * @example ["basic","google"] - */ - schemes?: string[]; -} - -export interface APIMetaPosthog { - /** - * the PostHog API key - * @example "phk_1234567890abcdef" - */ - apiKey?: string; - /** - * the PostHog API host - * @example "https://posthog.example.com" - */ - apiHost?: string; -} - -export type ListAPIMetaIntegration = APIMetaIntegration[]; - -export interface APIMetaIntegration { - /** - * the name of the integration - * @example "github" - */ - name: string; - /** whether this integration is enabled on the instance */ - enabled: boolean; -} - -export interface APIErrors { - errors: APIError[]; -} - export interface APIError { /** * a custom Hatchet error code @@ -100,6 +84,71 @@ export interface APIError { docs_link?: string; } +export interface APIErrors { + errors: APIError[]; +} + +export interface APIMetaIntegration { + /** + * the name of the integration + * @example "github" + */ + name: string; + /** whether this integration is enabled on the instance */ + enabled: boolean; +} + +export type ListAPIMetaIntegration = APIMetaIntegration[]; + +export interface UserLoginRequest { + /** + * The email address of the user. + * @format email + */ + email: string; + /** The password of the user. */ + password: string; +} + +export interface APIResourceMeta { + /** + * the id of this resource, in UUID format + * @minLength 0 + * @maxLength 36 + * @example "bb214807-246e-43a5-a25d-41761d1cff9e" + */ + id: string; + /** + * the time that this resource was created + * @format date-time + * @example "2022-12-13T15:06:48.888358-05:00" + */ + createdAt: string; + /** + * the time that this resource was last updated + * @format date-time + * @example "2022-12-13T15:06:48.888358-05:00" + */ + updatedAt: string; +} + +export interface User { + metadata: APIResourceMeta; + /** The display name of the user. */ + name?: string; + /** + * The email address of the user. + * @format email + */ + email: string; + /** Whether the user has verified their email address. */ + emailVerified: boolean; + /** Whether the user has a password set. */ + hasPassword?: boolean; + /** A hash of the user's email address for use with Pylon Support Chat */ + emailHash?: string; +} + /** @example {"next_page":3,"num_pages":10,"current_page":2} */ export interface PaginationResponse { /** @@ -122,120 +171,43 @@ export interface PaginationResponse { num_pages?: number; } -export interface APIResourceMeta { - /** - * the id of this resource, in UUID format - * @minLength 0 - * @maxLength 36 - * @example "bb214807-246e-43a5-a25d-41761d1cff9e" - */ - id: string; - /** - * the time that this resource was created - * @format date-time - * @example "2022-12-13T20:06:48.888Z" - */ - createdAt: string; - /** - * the time that this resource was last updated - * @format date-time - * @example "2022-12-13T20:06:48.888Z" - */ - updatedAt: string; -} - -export interface User { +export interface SNSIntegration { metadata: APIResourceMeta; - /** The display name of the user. */ - name?: string; /** - * The email address of the user. - * @format email + * The unique identifier for the tenant that the SNS integration belongs to. + * @format uuid */ - email: string; - /** Whether the user has verified their email address. */ - emailVerified: boolean; - /** Whether the user has a password set. */ - hasPassword?: boolean; - /** A hash of the user's email address for use with Pylon Support Chat */ - emailHash?: string; + tenantId: string; + /** The Amazon Resource Name (ARN) of the SNS topic. */ + topicArn: string; + /** The URL to send SNS messages to. */ + ingestUrl?: string; } -export interface UserTenantPublic { - /** - * The email address of the user. - * @format email - */ - email: string; - /** The display name of the user. */ - name?: string; +export interface ListSNSIntegrations { + pagination: PaginationResponse; + rows: SNSIntegration[]; } -export interface UserLoginRequest { - /** - * The email address of the user. - * @format email - */ - email: string; - /** The password of the user. */ - password: string; +export interface CreateSNSIntegrationRequest { + /** The Amazon Resource Name (ARN) of the SNS topic. */ + topicArn: string; } -export interface UserChangePasswordRequest { - /** The password of the user. */ - password: string; - /** The new password for the user. */ - newPassword: string; +export interface TenantAlertEmailGroup { + metadata: APIResourceMeta; + /** A list of emails for users */ + emails: string[]; } -export interface UserRegisterRequest { - /** The name of the user. */ - name: string; - /** - * The email address of the user. - * @format email - */ - email: string; - /** The password of the user. */ - password: string; -} - -export interface UserTenantMembershipsList { +export interface TenantAlertEmailGroupList { pagination?: PaginationResponse; - rows?: TenantMember[]; + rows?: TenantAlertEmailGroup[]; } -export interface Tenant { - metadata: APIResourceMeta; - /** The name of the tenant. */ - name: string; - /** The slug of the tenant. */ - slug: string; - /** Whether the tenant has opted out of analytics. */ - analyticsOptOut?: boolean; - /** Whether to alert tenant members. */ - alertMemberEmails?: boolean; -} - -export interface TenantMember { - metadata: APIResourceMeta; - /** The user associated with this tenant member. */ - user: UserTenantPublic; - /** The role of the user in the tenant. */ - role: TenantMemberRole; - /** The tenant associated with this tenant member. */ - tenant?: Tenant; -} - -export interface TenantMemberList { - pagination?: PaginationResponse; - rows?: TenantMember[]; -} - -export enum TenantMemberRole { - OWNER = 'OWNER', - ADMIN = 'ADMIN', - MEMBER = 'MEMBER', +export interface CreateTenantAlertEmailGroupRequest { + /** A list of emails for users */ + emails: string[]; } export enum TenantResource { @@ -270,58 +242,95 @@ export interface TenantResourcePolicy { limits: TenantResourceLimit[]; } -export interface CreateTenantInviteRequest { - /** The email of the user to invite. */ - email: string; - /** The role of the user in the tenant. */ - role: TenantMemberRole; -} - -export interface UpdateTenantInviteRequest { - /** The role of the user in the tenant. */ - role: TenantMemberRole; -} - -export interface TenantAlertingSettings { - metadata: APIResourceMeta; - /** Whether to alert tenant members. */ - alertMemberEmails?: boolean; - /** Whether to send alerts when workflow runs fail. */ - enableWorkflowRunFailureAlerts?: boolean; - /** Whether to enable alerts when tokens are approaching expiration. */ - enableExpiringTokenAlerts?: boolean; - /** Whether to enable alerts when tenant resources are approaching limits. */ - enableTenantResourceLimitAlerts?: boolean; - /** The max frequency at which to alert. */ - maxAlertingFrequency: string; - /** - * The last time an alert was sent. - * @format date-time - */ - lastAlertedAt?: string; -} - -export interface TenantAlertEmailGroup { - metadata: APIResourceMeta; - /** A list of emails for users */ - emails: string[]; -} - -export interface TenantAlertEmailGroupList { - pagination?: PaginationResponse; - rows?: TenantAlertEmailGroup[]; -} - -export interface CreateTenantAlertEmailGroupRequest { - /** A list of emails for users */ - emails: string[]; -} - export interface UpdateTenantAlertEmailGroupRequest { /** A list of emails for users */ emails: string[]; } +export interface SlackWebhook { + metadata: APIResourceMeta; + /** + * The unique identifier for the tenant that the SNS integration belongs to. + * @format uuid + */ + tenantId: string; + /** The team name associated with this slack webhook. */ + teamName: string; + /** The team id associated with this slack webhook. */ + teamId: string; + /** The channel name associated with this slack webhook. */ + channelName: string; + /** The channel id associated with this slack webhook. */ + channelId: string; +} + +export interface ListSlackWebhooks { + pagination: PaginationResponse; + rows: SlackWebhook[]; +} + +export interface UserChangePasswordRequest { + /** The password of the user. */ + password: string; + /** The new password for the user. */ + newPassword: string; +} + +export interface UserRegisterRequest { + /** The name of the user. */ + name: string; + /** + * The email address of the user. + * @format email + */ + email: string; + /** The password of the user. */ + password: string; +} + +export interface UserTenantPublic { + /** + * The email address of the user. + * @format email + */ + email: string; + /** The display name of the user. */ + name?: string; +} + +export enum TenantMemberRole { + OWNER = 'OWNER', + ADMIN = 'ADMIN', + MEMBER = 'MEMBER', +} + +export interface Tenant { + metadata: APIResourceMeta; + /** The name of the tenant. */ + name: string; + /** The slug of the tenant. */ + slug: string; + /** Whether the tenant has opted out of analytics. */ + analyticsOptOut?: boolean; + /** Whether to alert tenant members. */ + alertMemberEmails?: boolean; +} + +export interface TenantMember { + metadata: APIResourceMeta; + /** The user associated with this tenant member. */ + user: UserTenantPublic; + /** The role of the user in the tenant. */ + role: TenantMemberRole; + /** The tenant associated with this tenant member. */ + tenant?: Tenant; +} + +export interface UserTenantMembershipsList { + pagination?: PaginationResponse; + rows?: TenantMember[]; +} + export interface TenantInvite { metadata: APIResourceMeta; /** The email of the user to invite. */ @@ -344,26 +353,6 @@ export interface TenantInviteList { rows?: TenantInvite[]; } -export interface QueueMetrics { - /** The number of items in the queue. */ - numQueued: number; - /** The number of items running. */ - numRunning: number; - /** The number of items pending. */ - numPending: number; -} - -export interface TenantQueueMetrics { - /** The total queue metrics. */ - total?: QueueMetrics; - workflow?: Record; - queues?: Record; -} - -export interface TenantStepRunQueueMetrics { - queues?: Record; -} - export interface AcceptInviteRequest { /** * @minLength 36 @@ -382,11 +371,6 @@ export interface RejectInviteRequest { invite: string; } -export interface TenantList { - pagination?: PaginationResponse; - rows?: Tenant[]; -} - export interface CreateTenantRequest { /** The name of the tenant. */ name: string; @@ -411,42 +395,117 @@ export interface UpdateTenantRequest { maxAlertingFrequency?: string; } -export interface Event { +export interface TenantAlertingSettings { metadata: APIResourceMeta; - /** The key for the event. */ - key: string; - /** The tenant associated with this event. */ - tenant?: Tenant; - /** The ID of the tenant associated with this event. */ - tenantId: string; - /** The workflow run summary for this event. */ - workflowRunSummary?: EventWorkflowRunSummary; - /** Additional metadata for the event. */ - additionalMetadata?: object; + /** Whether to alert tenant members. */ + alertMemberEmails?: boolean; + /** Whether to send alerts when workflow runs fail. */ + enableWorkflowRunFailureAlerts?: boolean; + /** Whether to enable alerts when tokens are approaching expiration. */ + enableExpiringTokenAlerts?: boolean; + /** Whether to enable alerts when tenant resources are approaching limits. */ + enableTenantResourceLimitAlerts?: boolean; + /** The max frequency at which to alert. */ + maxAlertingFrequency: string; + /** + * The last time an alert was sent. + * @format date-time + */ + lastAlertedAt?: string; } -export interface EventData { - /** The data for the event (JSON bytes). */ - data: string; +export interface CreateTenantInviteRequest { + /** The email of the user to invite. */ + email: string; + /** The role of the user in the tenant. */ + role: TenantMemberRole; } -export interface CreateEventRequest { - /** The key for the event. */ - key: string; - /** The data for the event. */ - data: object; - /** Additional metadata for the event. */ - additionalMetadata?: object; +export interface UpdateTenantInviteRequest { + /** The role of the user in the tenant. */ + role: TenantMemberRole; } -export interface BulkCreateEventRequest { - events: CreateEventRequest[]; -} - -export interface BulkCreateEventResponse { +export interface APIToken { metadata: APIResourceMeta; - /** The events. */ - events: Event[]; + /** + * The name of the API token. + * @maxLength 255 + */ + name: string; + /** + * When the API token expires. + * @format date-time + */ + expiresAt: string; +} + +export interface ListAPITokensResponse { + pagination?: PaginationResponse; + rows?: APIToken[]; +} + +export interface CreateAPITokenRequest { + /** + * A name for the API token. + * @maxLength 255 + */ + name: string; + /** The duration for which the token is valid. */ + expiresIn?: string; +} + +export interface CreateAPITokenResponse { + /** The API token. */ + token: string; +} + +/** A workflow ID. */ +export type WorkflowID = string; + +export interface QueueMetrics { + /** The number of items in the queue. */ + numQueued: number; + /** The number of items running. */ + numRunning: number; + /** The number of items pending. */ + numPending: number; +} + +export interface TenantQueueMetrics { + /** The total queue metrics. */ + total?: QueueMetrics; + workflow?: Record; + queues?: Record; +} + +export interface TenantStepRunQueueMetrics { + queues?: Record; +} + +/** The key for the event. */ +export type EventKey = string; + +export enum WorkflowRunStatus { + PENDING = 'PENDING', + RUNNING = 'RUNNING', + SUCCEEDED = 'SUCCEEDED', + FAILED = 'FAILED', + CANCELLED = 'CANCELLED', + QUEUED = 'QUEUED', +} + +export type WorkflowRunStatusList = WorkflowRunStatus[]; + +export type EventSearch = string; + +export enum EventOrderByField { + CreatedAt = 'createdAt', +} + +export enum EventOrderByDirection { + Asc = 'asc', + Desc = 'desc', } export interface EventWorkflowRunSummary { @@ -477,33 +536,63 @@ export interface EventWorkflowRunSummary { failed?: number; } -export enum EventOrderByField { - CreatedAt = 'createdAt', +export interface Event { + metadata: APIResourceMeta; + /** The key for the event. */ + key: string; + /** The tenant associated with this event. */ + tenant?: Tenant; + /** The ID of the tenant associated with this event. */ + tenantId: string; + /** The workflow run summary for this event. */ + workflowRunSummary?: EventWorkflowRunSummary; + /** Additional metadata for the event. */ + additionalMetadata?: object; } -export enum EventOrderByDirection { - Asc = 'asc', - Desc = 'desc', -} - -export type EventSearch = string; - -export interface EventKeyList { - pagination?: PaginationResponse; - rows?: EventKey[]; -} - -/** The key for the event. */ -export type EventKey = string; - -/** A workflow ID. */ -export type WorkflowID = string; - export interface EventList { pagination?: PaginationResponse; rows?: Event[]; } +export interface CreateEventRequest { + /** The key for the event. */ + key: string; + /** The data for the event. */ + data: object; + /** Additional metadata for the event. */ + additionalMetadata?: object; +} + +export interface BulkCreateEventRequest { + events: CreateEventRequest[]; +} + +export interface Events { + metadata: APIResourceMeta; + /** The events. */ + events: Event[]; +} + +export interface ReplayEventRequest { + eventIds: string[]; +} + +export interface CancelEventRequest { + eventIds: string[]; +} + +export enum RateLimitOrderByField { + Key = 'key', + Value = 'value', + LimitValue = 'limitValue', +} + +export enum RateLimitOrderByDirection { + Asc = 'asc', + Desc = 'desc', +} + export interface RateLimit { /** The key for the rate limit. */ key: string; @@ -518,7 +607,7 @@ export interface RateLimit { /** * The last time the rate limit was refilled. * @format date-time - * @example "2022-12-13T20:06:48.888Z" + * @example "2022-12-13T15:06:48.888358-05:00" */ lastRefill: string; } @@ -528,23 +617,19 @@ export interface RateLimitList { rows?: RateLimit[]; } -export enum RateLimitOrderByField { - Key = 'key', - Value = 'value', - LimitValue = 'limitValue', +export interface TenantMemberList { + pagination?: PaginationResponse; + rows?: TenantMember[]; } -export enum RateLimitOrderByDirection { - Asc = 'asc', - Desc = 'desc', +export interface EventData { + /** The data for the event (JSON bytes). */ + data: string; } -export interface ReplayEventRequest { - eventIds: string[]; -} - -export interface CancelEventRequest { - eventIds: string[]; +export interface EventKeyList { + pagination?: PaginationResponse; + rows?: EventKey[]; } export interface Workflow { @@ -562,11 +647,167 @@ export interface Workflow { jobs?: Job[]; } +export interface WorkflowVersionMeta { + metadata: APIResourceMeta; + /** The version of the workflow. */ + version: string; + /** @format int32 */ + order: number; + workflowId: string; + workflow?: Workflow; +} + +export interface WorkflowTag { + /** The name of the workflow. */ + name: string; + /** The description of the workflow. */ + color: string; +} + +export interface Step { + metadata: APIResourceMeta; + /** The readable id of the step. */ + readableId: string; + tenantId: string; + jobId: string; + action: string; + /** The timeout of the step. */ + timeout?: string; + children?: string[]; + parents?: string[]; +} + +export interface Job { + metadata: APIResourceMeta; + tenantId: string; + versionId: string; + name: string; + /** The description of the job. */ + description?: string; + steps: Step[]; + /** The timeout of the job. */ + timeout?: string; +} + +export interface WorkflowList { + metadata?: APIResourceMeta; + rows?: Workflow[]; + pagination?: PaginationResponse; +} + +export interface ScheduleWorkflowRunRequest { + input: object; + additionalMetadata: object; + /** @format date-time */ + triggerAt: string; +} + +export enum ScheduledWorkflowsMethod { + DEFAULT = 'DEFAULT', + API = 'API', +} + +export interface ScheduledWorkflows { + metadata: APIResourceMeta; + tenantId: string; + workflowVersionId: string; + workflowId: string; + workflowName: string; + /** @format date-time */ + triggerAt: string; + input?: Record; + additionalMetadata?: Record; + /** @format date-time */ + workflowRunCreatedAt?: string; + workflowRunName?: string; + workflowRunStatus?: WorkflowRunStatus; + /** + * @format uuid + * @minLength 36 + * @maxLength 36 + * @example "bb214807-246e-43a5-a25d-41761d1cff9e" + */ + workflowRunId?: string; + method: ScheduledWorkflowsMethod; +} + +export enum ScheduledWorkflowsOrderByField { + TriggerAt = 'triggerAt', + CreatedAt = 'createdAt', +} + +export enum WorkflowRunOrderByDirection { + ASC = 'ASC', + DESC = 'DESC', +} + +export enum ScheduledRunStatus { + PENDING = 'PENDING', + RUNNING = 'RUNNING', + SUCCEEDED = 'SUCCEEDED', + FAILED = 'FAILED', + CANCELLED = 'CANCELLED', + QUEUED = 'QUEUED', + SCHEDULED = 'SCHEDULED', +} + +export interface ScheduledWorkflowsList { + rows?: ScheduledWorkflows[]; + pagination?: PaginationResponse; +} + +export interface CreateCronWorkflowTriggerRequest { + input: object; + additionalMetadata: object; + cronName: string; + cronExpression: string; +} + +export enum CronWorkflowsMethod { + DEFAULT = 'DEFAULT', + API = 'API', +} + +export interface CronWorkflows { + metadata: APIResourceMeta; + tenantId: string; + workflowVersionId: string; + workflowId: string; + workflowName: string; + cron: string; + name?: string; + input?: Record; + additionalMetadata?: Record; + enabled: boolean; + method: CronWorkflowsMethod; +} + +export enum CronWorkflowsOrderByField { + Name = 'name', + CreatedAt = 'createdAt', +} + +export interface CronWorkflowsList { + rows?: CronWorkflows[]; + pagination?: PaginationResponse; +} + +export interface WorkflowRunsCancelRequest { + workflowRunIds: string[]; +} + export interface WorkflowUpdateRequest { /** Whether the workflow is paused. */ isPaused?: boolean; } +export enum ConcurrencyLimitStrategy { + CANCEL_IN_PROGRESS = 'CANCEL_IN_PROGRESS', + DROP_NEWEST = 'DROP_NEWEST', + QUEUE_NEWEST = 'QUEUE_NEWEST', + GROUP_ROUND_ROBIN = 'GROUP_ROUND_ROBIN', +} + export interface WorkflowConcurrency { /** * The maximum number of concurrent workflow runs. @@ -574,19 +815,27 @@ export interface WorkflowConcurrency { */ maxRuns: number; /** The strategy to use when the concurrency limit is reached. */ - limitStrategy: 'CANCEL_IN_PROGRESS' | 'DROP_NEWEST' | 'QUEUE_NEWEST' | 'GROUP_ROUND_ROBIN'; + limitStrategy: ConcurrencyLimitStrategy; /** An action which gets the concurrency group for the WorkflowRun. */ getConcurrencyGroup: string; } -export interface WorkflowVersionMeta { - metadata: APIResourceMeta; - /** The version of the workflow. */ - version: string; - /** @format int32 */ - order: number; - workflowId: string; - workflow?: Workflow; +export interface WorkflowTriggerEventRef { + parent_id?: string; + event_key?: string; +} + +export interface WorkflowTriggerCronRef { + parent_id?: string; + cron?: string; +} + +export interface WorkflowTriggers { + metadata?: APIResourceMeta; + workflow_version_id?: string; + tenant_id?: string; + events?: WorkflowTriggerEventRef[]; + crons?: WorkflowTriggerCronRef[]; } export interface WorkflowVersion { @@ -610,71 +859,9 @@ export interface WorkflowVersion { jobs?: Job[]; } -export interface WorkflowVersionDefinition { - /** The raw YAML definition of the workflow. */ - rawDefinition: string; -} - -export interface WorkflowTag { - /** The name of the workflow. */ - name: string; - /** The description of the workflow. */ - color: string; -} - -export interface WorkflowList { - metadata?: APIResourceMeta; - rows?: Workflow[]; - pagination?: PaginationResponse; -} - -export interface WorkflowTriggers { - metadata?: APIResourceMeta; - workflow_version_id?: string; - tenant_id?: string; - events?: WorkflowTriggerEventRef[]; - crons?: WorkflowTriggerCronRef[]; -} - -export interface WorkflowTriggerEventRef { - parent_id?: string; - event_key?: string; -} - -export interface WorkflowTriggerCronRef { - parent_id?: string; - cron?: string; -} - -export interface Job { - metadata: APIResourceMeta; - tenantId: string; - versionId: string; - name: string; - /** The description of the job. */ - description?: string; - steps: Step[]; - /** The timeout of the job. */ - timeout?: string; -} - -export interface Step { - metadata: APIResourceMeta; - /** The readable id of the step. */ - readableId: string; - tenantId: string; - jobId: string; - action: string; - /** The timeout of the step. */ - timeout?: string; - children?: string[]; - parents?: string[]; -} - -export interface WorkflowWorkersCount { - freeSlotCount?: number; - maxSlotCount?: number; - workflowRunId?: string; +export interface TriggerWorkflowRunRequest { + input: object; + additionalMetadata?: object; } export interface WorkflowRun { @@ -711,189 +898,6 @@ export interface WorkflowRun { additionalMetadata?: Record; } -export interface WorkflowRunShape { - metadata: APIResourceMeta; - tenantId: string; - workflowId?: string; - workflowVersionId: string; - workflowVersion?: WorkflowVersion; - status: WorkflowRunStatus; - displayName?: string; - jobRuns?: JobRun[]; - triggeredBy: WorkflowRunTriggeredBy; - input?: Record; - error?: string; - /** @format date-time */ - startedAt?: string; - /** @format date-time */ - finishedAt?: string; - /** @example 1000 */ - duration?: number; - /** - * @format uuid - * @minLength 36 - * @maxLength 36 - * @example "bb214807-246e-43a5-a25d-41761d1cff9e" - */ - parentId?: string; - /** - * @format uuid - * @minLength 36 - * @maxLength 36 - * @example "bb214807-246e-43a5-a25d-41761d1cff9e" - */ - parentStepRunId?: string; - additionalMetadata?: Record; -} - -export interface ReplayWorkflowRunsRequest { - /** @maxLength 500 */ - workflowRunIds: string[]; -} - -export interface ReplayWorkflowRunsResponse { - workflowRuns: WorkflowRun[]; -} - -export interface WorkflowRunList { - rows?: WorkflowRun[]; - pagination?: PaginationResponse; -} - -export interface ScheduledWorkflows { - metadata: APIResourceMeta; - tenantId: string; - workflowVersionId: string; - workflowId: string; - workflowName: string; - /** @format date-time */ - triggerAt: string; - input?: Record; - additionalMetadata?: Record; - /** @format date-time */ - workflowRunCreatedAt?: string; - workflowRunName?: string; - workflowRunStatus?: WorkflowRunStatus; - /** - * @format uuid - * @minLength 36 - * @maxLength 36 - * @example "bb214807-246e-43a5-a25d-41761d1cff9e" - */ - workflowRunId?: string; - method: 'DEFAULT' | 'API'; -} - -export interface ScheduledWorkflowsList { - rows?: ScheduledWorkflows[]; - pagination?: PaginationResponse; -} - -export enum ScheduledWorkflowsOrderByField { - TriggerAt = 'triggerAt', - CreatedAt = 'createdAt', -} - -export enum ScheduledRunStatus { - PENDING = 'PENDING', - RUNNING = 'RUNNING', - SUCCEEDED = 'SUCCEEDED', - FAILED = 'FAILED', - CANCELLED = 'CANCELLED', - QUEUED = 'QUEUED', - SCHEDULED = 'SCHEDULED', -} - -export interface CronWorkflows { - metadata: APIResourceMeta; - tenantId: string; - workflowVersionId: string; - workflowId: string; - workflowName: string; - cron: string; - name?: string; - input?: Record; - additionalMetadata?: Record; - enabled: boolean; - method: 'DEFAULT' | 'API'; -} - -export interface CronWorkflowsList { - rows?: CronWorkflows[]; - pagination?: PaginationResponse; -} - -export enum CronWorkflowsOrderByField { - Name = 'name', - CreatedAt = 'createdAt', -} - -export enum WorkflowRunOrderByField { - CreatedAt = 'createdAt', - StartedAt = 'startedAt', - FinishedAt = 'finishedAt', - Duration = 'duration', -} - -export enum WorkflowRunOrderByDirection { - ASC = 'ASC', - DESC = 'DESC', -} - -export interface WorkflowRunsMetrics { - counts?: WorkflowRunsMetricsCounts; -} - -export interface WorkflowRunsMetricsCounts { - PENDING?: number; - RUNNING?: number; - SUCCEEDED?: number; - FAILED?: number; - QUEUED?: number; -} - -export enum WorkflowRunStatus { - PENDING = 'PENDING', - RUNNING = 'RUNNING', - SUCCEEDED = 'SUCCEEDED', - FAILED = 'FAILED', - CANCELLED = 'CANCELLED', - QUEUED = 'QUEUED', -} - -export type WorkflowRunStatusList = WorkflowRunStatus[]; - -export enum WorkflowKind { - FUNCTION = 'FUNCTION', - DURABLE = 'DURABLE', - DAG = 'DAG', -} - -export type WorkflowKindList = WorkflowKind[]; - -export interface WorkflowRunsCancelRequest { - workflowRunIds: string[]; -} - -export enum JobRunStatus { - PENDING = 'PENDING', - RUNNING = 'RUNNING', - SUCCEEDED = 'SUCCEEDED', - FAILED = 'FAILED', - CANCELLED = 'CANCELLED', -} - -export enum StepRunStatus { - PENDING = 'PENDING', - PENDING_ASSIGNMENT = 'PENDING_ASSIGNMENT', - ASSIGNED = 'ASSIGNED', - RUNNING = 'RUNNING', - SUCCEEDED = 'SUCCEEDED', - FAILED = 'FAILED', - CANCELLED = 'CANCELLED', - CANCELLING = 'CANCELLING', -} - export interface JobRun { metadata: APIResourceMeta; tenantId: string; @@ -917,12 +921,15 @@ export interface JobRun { cancelledError?: string; } -export interface WorkflowRunTriggeredBy { - metadata: APIResourceMeta; - parentWorkflowRunId?: string; - eventId?: string; - cronParentId?: string; - cronSchedule?: string; +export enum StepRunStatus { + PENDING = 'PENDING', + PENDING_ASSIGNMENT = 'PENDING_ASSIGNMENT', + ASSIGNED = 'ASSIGNED', + RUNNING = 'RUNNING', + SUCCEEDED = 'SUCCEEDED', + FAILED = 'FAILED', + CANCELLED = 'CANCELLED', + CANCELLING = 'CANCELLING', } export interface StepRun { @@ -959,6 +966,66 @@ export interface StepRun { cancelledError?: string; } +export enum JobRunStatus { + PENDING = 'PENDING', + RUNNING = 'RUNNING', + SUCCEEDED = 'SUCCEEDED', + FAILED = 'FAILED', + CANCELLED = 'CANCELLED', +} + +export interface WorkflowRunTriggeredBy { + metadata: APIResourceMeta; + parentWorkflowRunId?: string; + eventId?: string; + cronParentId?: string; + cronSchedule?: string; +} + +export interface WorkflowMetrics { + /** The number of runs for a specific group key (passed via filter) */ + groupKeyRunsCount?: number; + /** The total number of concurrency group keys. */ + groupKeyCount?: number; +} + +export enum LogLineLevel { + DEBUG = 'DEBUG', + INFO = 'INFO', + WARN = 'WARN', + ERROR = 'ERROR', +} + +export type LogLineLevelField = LogLineLevel[]; + +export type LogLineSearch = string; + +export enum LogLineOrderByField { + CreatedAt = 'createdAt', +} + +export enum LogLineOrderByDirection { + Asc = 'asc', + Desc = 'desc', +} + +export interface LogLine { + /** + * The creation date of the log line. + * @format date-time + */ + createdAt: string; + /** The log message. */ + message: string; + /** The log metadata. */ + metadata: object; +} + +export interface LogLineList { + pagination?: PaginationResponse; + rows?: LogLine[]; +} + export enum StepRunEventReason { REQUEUED_NO_WORKER = 'REQUEUED_NO_WORKER', REQUEUED_RATE_LIMIT = 'REQUEUED_RATE_LIMIT', @@ -1035,23 +1102,96 @@ export interface StepRunArchiveList { rows?: StepRunArchive[]; } -export interface WorkerRuntimeInfo { - sdkVersion?: string; - language?: WorkerRuntimeSDKs; - languageVersion?: string; - os?: string; - runtimeExtra?: string; +export interface WorkflowWorkersCount { + freeSlotCount?: number; + maxSlotCount?: number; + workflowRunId?: string; } -export enum WorkerRuntimeSDKs { - GOLANG = 'GOLANG', - PYTHON = 'PYTHON', - TYPESCRIPT = 'TYPESCRIPT', +export enum WorkflowKind { + FUNCTION = 'FUNCTION', + DURABLE = 'DURABLE', + DAG = 'DAG', } -export interface WorkerList { +export type WorkflowKindList = WorkflowKind[]; + +export enum WorkflowRunOrderByField { + CreatedAt = 'createdAt', + StartedAt = 'startedAt', + FinishedAt = 'finishedAt', + Duration = 'duration', +} + +export interface WorkflowRunList { + rows?: WorkflowRun[]; pagination?: PaginationResponse; - rows?: Worker[]; +} + +export interface ReplayWorkflowRunsRequest { + /** @maxLength 500 */ + workflowRunIds: string[]; +} + +export interface ReplayWorkflowRunsResponse { + workflowRuns: WorkflowRun[]; +} + +export interface WorkflowRunsMetricsCounts { + PENDING?: number; + RUNNING?: number; + SUCCEEDED?: number; + FAILED?: number; + QUEUED?: number; +} + +export interface WorkflowRunsMetrics { + counts?: WorkflowRunsMetricsCounts; +} + +export interface WorkflowRunShape { + metadata: APIResourceMeta; + tenantId: string; + workflowId?: string; + workflowVersionId: string; + workflowVersion?: WorkflowVersion; + status: WorkflowRunStatus; + displayName?: string; + jobRuns?: JobRun[]; + triggeredBy: WorkflowRunTriggeredBy; + input?: Record; + error?: string; + /** @format date-time */ + startedAt?: string; + /** @format date-time */ + finishedAt?: string; + /** @example 1000 */ + duration?: number; + /** + * @format uuid + * @minLength 36 + * @maxLength 36 + * @example "bb214807-246e-43a5-a25d-41761d1cff9e" + */ + parentId?: string; + /** + * @format uuid + * @minLength 36 + * @maxLength 36 + * @example "bb214807-246e-43a5-a25d-41761d1cff9e" + */ + parentStepRunId?: string; + additionalMetadata?: Record; +} + +export interface RerunStepRunRequest { + input: object; +} + +export enum WorkerType { + SELFHOSTED = 'SELFHOSTED', + MANAGED = 'MANAGED', + WEBHOOK = 'WEBHOOK', } export interface SemaphoreSlots { @@ -1095,21 +1235,43 @@ export interface RecentStepRuns { workflowRunId: string; } +export interface WorkerLabel { + metadata: APIResourceMeta; + /** The key of the label. */ + key: string; + /** The value of the label. */ + value?: string; +} + +export enum WorkerRuntimeSDKs { + GOLANG = 'GOLANG', + PYTHON = 'PYTHON', + TYPESCRIPT = 'TYPESCRIPT', +} + +export interface WorkerRuntimeInfo { + sdkVersion?: string; + language?: WorkerRuntimeSDKs; + languageVersion?: string; + os?: string; + runtimeExtra?: string; +} + export interface Worker { metadata: APIResourceMeta; /** The name of the worker. */ name: string; - type: 'SELFHOSTED' | 'MANAGED' | 'WEBHOOK'; + type: WorkerType; /** * The time this worker last sent a heartbeat. * @format date-time - * @example "2022-12-13T20:06:48.888Z" + * @example "2022-12-13T15:06:48.888358-05:00" */ lastHeartbeatAt?: string; /** * The time this worker last sent a heartbeat. * @format date-time - * @example "2022-12-13T20:06:48.888Z" + * @example "2022-12-13T15:06:48.888358-05:00" */ lastListenerEstablished?: string; /** The actions this worker can perform. */ @@ -1144,12 +1306,9 @@ export interface Worker { runtimeInfo?: WorkerRuntimeInfo; } -export interface WorkerLabel { - metadata: APIResourceMeta; - /** The key of the label. */ - key: string; - /** The value of the label. */ - value?: string; +export interface WorkerList { + pagination?: PaginationResponse; + rows?: Worker[]; } export interface UpdateWorkerRequest { @@ -1157,186 +1316,6 @@ export interface UpdateWorkerRequest { isPaused?: boolean; } -export interface APIToken { - metadata: APIResourceMeta; - /** - * The name of the API token. - * @maxLength 255 - */ - name: string; - /** - * When the API token expires. - * @format date-time - */ - expiresAt: string; -} - -export interface CreateAPITokenRequest { - /** - * A name for the API token. - * @maxLength 255 - */ - name: string; - /** The duration for which the token is valid. */ - expiresIn?: string; -} - -export interface CreateAPITokenResponse { - /** The API token. */ - token: string; -} - -export interface ListAPITokensResponse { - pagination?: PaginationResponse; - rows?: APIToken[]; -} - -export interface RerunStepRunRequest { - input: object; -} - -export interface TriggerWorkflowRunRequest { - input: object; - additionalMetadata?: object; -} - -export interface ScheduleWorkflowRunRequest { - input: object; - additionalMetadata: object; - /** @format date-time */ - triggerAt: string; -} - -export interface CreateCronWorkflowTriggerRequest { - input: object; - additionalMetadata: object; - cronName: string; - cronExpression: string; -} - -export interface CreatePullRequestFromStepRun { - branchName: string; -} - -export interface GetStepRunDiffResponse { - diffs: StepRunDiff[]; -} - -export interface StepRunDiff { - key: string; - original: string; - modified: string; -} - -export interface ListPullRequestsResponse { - pullRequests: PullRequest[]; -} - -export interface PullRequest { - repositoryOwner: string; - repositoryName: string; - pullRequestID: number; - pullRequestTitle: string; - pullRequestNumber: number; - pullRequestHeadBranch: string; - pullRequestBaseBranch: string; - pullRequestState: PullRequestState; -} - -export enum PullRequestState { - Open = 'open', - Closed = 'closed', -} - -export interface LogLine { - /** - * The creation date of the log line. - * @format date-time - */ - createdAt: string; - /** The log message. */ - message: string; - /** The log metadata. */ - metadata: object; -} - -export enum LogLineLevel { - DEBUG = 'DEBUG', - INFO = 'INFO', - WARN = 'WARN', - ERROR = 'ERROR', -} - -export interface LogLineList { - pagination?: PaginationResponse; - rows?: LogLine[]; -} - -export enum LogLineOrderByField { - CreatedAt = 'createdAt', -} - -export enum LogLineOrderByDirection { - Asc = 'asc', - Desc = 'desc', -} - -export type LogLineSearch = string; - -export type LogLineLevelField = LogLineLevel[]; - -export interface SNSIntegration { - metadata: APIResourceMeta; - /** - * The unique identifier for the tenant that the SNS integration belongs to. - * @format uuid - */ - tenantId: string; - /** The Amazon Resource Name (ARN) of the SNS topic. */ - topicArn: string; - /** The URL to send SNS messages to. */ - ingestUrl?: string; -} - -export interface ListSNSIntegrations { - pagination: PaginationResponse; - rows: SNSIntegration[]; -} - -export interface SlackWebhook { - metadata: APIResourceMeta; - /** - * The unique identifier for the tenant that the SNS integration belongs to. - * @format uuid - */ - tenantId: string; - /** The team name associated with this slack webhook. */ - teamName: string; - /** The team id associated with this slack webhook. */ - teamId: string; - /** The channel name associated with this slack webhook. */ - channelName: string; - /** The channel id associated with this slack webhook. */ - channelId: string; -} - -export interface ListSlackWebhooks { - pagination: PaginationResponse; - rows: SlackWebhook[]; -} - -export interface CreateSNSIntegrationRequest { - /** The Amazon Resource Name (ARN) of the SNS topic. */ - topicArn: string; -} - -export interface WorkflowMetrics { - /** The number of runs for a specific group key (passed via filter) */ - groupKeyRunsCount?: number; - /** The total number of concurrency group keys. */ - groupKeyCount?: number; -} - export interface WebhookWorker { metadata: APIResourceMeta; /** The name of the webhook worker. */ @@ -1345,6 +1324,33 @@ export interface WebhookWorker { url: string; } +export interface WebhookWorkerListResponse { + pagination?: PaginationResponse; + rows?: WebhookWorker[]; +} + +export interface WebhookWorkerCreateRequest { + /** The name of the webhook worker. */ + name: string; + /** The webhook url. */ + url: string; + /** + * The secret key for validation. If not provided, a random secret will be generated. + * @minLength 32 + */ + secret?: string; +} + +export interface WebhookWorkerCreated { + metadata: APIResourceMeta; + /** The name of the webhook worker. */ + name: string; + /** The webhook url. */ + url: string; + /** The secret key for validation. */ + secret: string; +} + export enum WebhookWorkerRequestMethod { GET = 'GET', POST = 'POST', @@ -1368,33 +1374,52 @@ export interface WebhookWorkerRequestListResponse { requests?: WebhookWorkerRequest[]; } -export interface WebhookWorkerCreated { - metadata: APIResourceMeta; - /** The name of the webhook worker. */ - name: string; - /** The webhook url. */ - url: string; - /** The secret key for validation. */ - secret: string; +export interface TenantList { + pagination?: PaginationResponse; + rows?: Tenant[]; } -export interface WebhookWorkerCreateRequest { - /** The name of the webhook worker. */ - name: string; - /** The webhook url. */ - url: string; - /** - * The secret key for validation. If not provided, a random secret will be generated. - * @minLength 32 - */ - secret?: string; +export interface WorkflowVersionDefinition { + /** The raw YAML definition of the workflow. */ + rawDefinition: string; +} + +export interface CreatePullRequestFromStepRun { + branchName: string; +} + +export interface StepRunDiff { + key: string; + original: string; + modified: string; +} + +export interface GetStepRunDiffResponse { + diffs: StepRunDiff[]; +} + +export enum PullRequestState { + Open = 'open', + Closed = 'closed', +} + +export interface PullRequest { + repositoryOwner: string; + repositoryName: string; + pullRequestID: number; + pullRequestTitle: string; + pullRequestNumber: number; + pullRequestHeadBranch: string; + pullRequestBaseBranch: string; + pullRequestState: PullRequestState; +} + +export interface ListPullRequestsResponse { + pullRequests: PullRequest[]; } export interface WebhookWorkerCreateResponse { worker?: WebhookWorkerCreated; } -export interface WebhookWorkerListResponse { - pagination?: PaginationResponse; - rows?: WebhookWorker[]; -} +export type BulkCreateEventResponse = Events; diff --git a/hack/oas/generate-server.sh b/hack/oas/generate-server.sh index 4750f9187..ce116f9c0 100644 --- a/hack/oas/generate-server.sh +++ b/hack/oas/generate-server.sh @@ -2,5 +2,5 @@ set -eux -npx --yes swagger-cli@4.0.4 bundle ./api-contracts/openapi/openapi.yaml --outfile bin/oas/openapi.yaml --type yaml +npx --yes @redocly/cli bundle ./api-contracts/openapi/openapi.yaml --output ./bin/oas/openapi.yaml --ext yaml go run github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@v2.0.0 -config ./api/v1/server/oas/gen/codegen.yaml ./bin/oas/openapi.yaml diff --git a/pkg/client/rest/gen.go b/pkg/client/rest/gen.go index 335e3e11c..ca85d6df3 100644 --- a/pkg/client/rest/gen.go +++ b/pkg/client/rest/gen.go @@ -23,6 +23,14 @@ const ( CookieAuthScopes = "cookieAuth.Scopes" ) +// Defines values for ConcurrencyLimitStrategy. +const ( + CANCELINPROGRESS ConcurrencyLimitStrategy = "CANCEL_IN_PROGRESS" + DROPNEWEST ConcurrencyLimitStrategy = "DROP_NEWEST" + GROUPROUNDROBIN ConcurrencyLimitStrategy = "GROUP_ROUND_ROBIN" + QUEUENEWEST ConcurrencyLimitStrategy = "QUEUE_NEWEST" +) + // Defines values for CronWorkflowsMethod. const ( CronWorkflowsMethodAPI CronWorkflowsMethod = "API" @@ -173,13 +181,6 @@ const ( PAUSED WorkerStatus = "PAUSED" ) -// Defines values for WorkerType. -const ( - MANAGED WorkerType = "MANAGED" - SELFHOSTED WorkerType = "SELFHOSTED" - WEBHOOK WorkerType = "WEBHOOK" -) - // Defines values for WorkerRuntimeSDKs. const ( GOLANG WorkerRuntimeSDKs = "GOLANG" @@ -187,12 +188,11 @@ const ( TYPESCRIPT WorkerRuntimeSDKs = "TYPESCRIPT" ) -// Defines values for WorkflowConcurrencyLimitStrategy. +// Defines values for WorkerType. const ( - CANCELINPROGRESS WorkflowConcurrencyLimitStrategy = "CANCEL_IN_PROGRESS" - DROPNEWEST WorkflowConcurrencyLimitStrategy = "DROP_NEWEST" - GROUPROUNDROBIN WorkflowConcurrencyLimitStrategy = "GROUP_ROUND_ROBIN" - QUEUENEWEST WorkflowConcurrencyLimitStrategy = "QUEUE_NEWEST" + MANAGED WorkerType = "MANAGED" + SELFHOSTED WorkerType = "SELFHOSTED" + WEBHOOK WorkerType = "WEBHOOK" ) // Defines values for WorkflowKind. @@ -322,18 +322,14 @@ type BulkCreateEventRequest struct { Events []CreateEventRequest `json:"events"` } -// BulkCreateEventResponse defines model for BulkCreateEventResponse. -type BulkCreateEventResponse struct { - // Events The events. - Events []Event `json:"events"` - Metadata APIResourceMeta `json:"metadata"` -} - // CancelEventRequest defines model for CancelEventRequest. type CancelEventRequest struct { EventIds []openapi_types.UUID `json:"eventIds"` } +// ConcurrencyLimitStrategy defines model for ConcurrencyLimitStrategy. +type ConcurrencyLimitStrategy string + // CreateAPITokenRequest defines model for CreateAPITokenRequest. type CreateAPITokenRequest struct { // ExpiresIn The duration for which the token is valid. @@ -412,15 +408,15 @@ type CronWorkflows struct { WorkflowVersionId string `json:"workflowVersionId"` } -// CronWorkflowsMethod defines model for CronWorkflows.Method. -type CronWorkflowsMethod string - // CronWorkflowsList defines model for CronWorkflowsList. type CronWorkflowsList struct { Pagination *PaginationResponse `json:"pagination,omitempty"` Rows *[]CronWorkflows `json:"rows,omitempty"` } +// CronWorkflowsMethod defines model for CronWorkflowsMethod. +type CronWorkflowsMethod string + // CronWorkflowsOrderByField defines model for CronWorkflowsOrderByField. type CronWorkflowsOrderByField string @@ -487,6 +483,13 @@ type EventWorkflowRunSummary struct { Succeeded *int64 `json:"succeeded,omitempty"` } +// Events defines model for Events. +type Events struct { + // Events The events. + Events []Event `json:"events"` + Metadata APIResourceMeta `json:"metadata"` +} + // Job defines model for Job. type Job struct { // Description The description of the job. @@ -712,15 +715,15 @@ type ScheduledWorkflows struct { WorkflowVersionId string `json:"workflowVersionId"` } -// ScheduledWorkflowsMethod defines model for ScheduledWorkflows.Method. -type ScheduledWorkflowsMethod string - // ScheduledWorkflowsList defines model for ScheduledWorkflowsList. type ScheduledWorkflowsList struct { Pagination *PaginationResponse `json:"pagination,omitempty"` Rows *[]ScheduledWorkflows `json:"rows,omitempty"` } +// ScheduledWorkflowsMethod defines model for ScheduledWorkflowsMethod. +type ScheduledWorkflowsMethod string + // ScheduledWorkflowsOrderByField defines model for ScheduledWorkflowsOrderByField. type ScheduledWorkflowsOrderByField string @@ -1217,9 +1220,6 @@ type Worker struct { // WorkerStatus The status of the worker. type WorkerStatus string -// WorkerType defines model for Worker.Type. -type WorkerType string - // WorkerLabel defines model for WorkerLabel. type WorkerLabel struct { // Key The key of the label. @@ -1248,6 +1248,9 @@ type WorkerRuntimeInfo struct { // WorkerRuntimeSDKs defines model for WorkerRuntimeSDKs. type WorkerRuntimeSDKs string +// WorkerType defines model for WorkerType. +type WorkerType string + // Workflow defines model for Workflow. type Workflow struct { // Description The description of the workflow. @@ -1271,18 +1274,13 @@ type Workflow struct { // WorkflowConcurrency defines model for WorkflowConcurrency. type WorkflowConcurrency struct { // GetConcurrencyGroup An action which gets the concurrency group for the WorkflowRun. - GetConcurrencyGroup string `json:"getConcurrencyGroup"` - - // LimitStrategy The strategy to use when the concurrency limit is reached. - LimitStrategy WorkflowConcurrencyLimitStrategy `json:"limitStrategy"` + GetConcurrencyGroup string `json:"getConcurrencyGroup"` + LimitStrategy ConcurrencyLimitStrategy `json:"limitStrategy"` // MaxRuns The maximum number of concurrent workflow runs. MaxRuns int32 `json:"maxRuns"` } -// WorkflowConcurrencyLimitStrategy The strategy to use when the concurrency limit is reached. -type WorkflowConcurrencyLimitStrategy string - // WorkflowID A workflow ID. type WorkflowID = string @@ -9229,7 +9227,7 @@ func (r EventCreateResponse) StatusCode() int { type EventCreateBulkResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *BulkCreateEventResponse + JSON200 *Events JSON400 *APIErrors JSON403 *APIErrors JSON429 *APIErrors @@ -12836,7 +12834,7 @@ func ParseEventCreateBulkResponse(rsp *http.Response) (*EventCreateBulkResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest BulkCreateEventResponse + var dest Events if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err }