diff --git a/src/Infrastructure.Web.Api.IntegrationTests/ApiDocsSpec.cs b/src/Infrastructure.Web.Api.IntegrationTests/ApiDocsSpec.cs index ad96c64e..5fcff63b 100644 --- a/src/Infrastructure.Web.Api.IntegrationTests/ApiDocsSpec.cs +++ b/src/Infrastructure.Web.Api.IntegrationTests/ApiDocsSpec.cs @@ -120,6 +120,10 @@ public async Task WhenFetchOpenApi_ThenHasNullableResponseFields() operation.OperationId.Should().Be("OpenApiGetTestingOnly"); var responseType = openApi.Components.Schemas[nameof(OpenApiTestingOnlyResponse)]; + responseType.Required.Count.Should().Be(5); + responseType.Required.Should().ContainInOrder("anAnnotatedRequiredField", "anInitializedField", + "aRequiredField", + "aValueTypeField", "message"); responseType.Properties["anAnnotatedRequiredField"].Nullable.Should().BeFalse(); responseType.Properties["anInitializedField"].Nullable.Should().BeFalse(); responseType.Properties["aNullableField"].Nullable.Should().BeTrue(); @@ -300,7 +304,8 @@ public async Task WhenFetchOpenApi_ThenResponseHasGeneralErrorResponses() var operation = openApi!.Paths["/testingonly/openapi/{Id}"].Operations[OperationType.Post]; operation.Responses.Count.Should().Be(11); - VerifyGeneralErrorResponses(operation.Responses, "a custom conflict response"); + VerifyGeneralErrorResponses(operation.Responses, + "a custom conflict response which spills over to the next line"); } } diff --git a/src/Infrastructure.Web.Hosting.Common/Documentation/AllSchemaFilter.cs b/src/Infrastructure.Web.Hosting.Common/Documentation/AllSchemaFilter.cs index 1635f037..b615f11e 100644 --- a/src/Infrastructure.Web.Hosting.Common/Documentation/AllSchemaFilter.cs +++ b/src/Infrastructure.Web.Hosting.Common/Documentation/AllSchemaFilter.cs @@ -19,14 +19,17 @@ public void Apply(OpenApiSchema schema, SchemaFilterContext context) { var member = context.MemberInfo; var declaringType = member.DeclaringType; - if (declaringType.IsRequestOrResponseType()) + if (declaringType.IsRequestType()) { - // dealing with each property of a request and responses type + // dealing with each property of a request type schema.SetPropertyDescription(member); - if (declaringType.IsResponseType()) - { - schema.SetPropertyNullable(member); - } + } + + if (declaringType.IsResponseType()) + { + // dealing with each property of a responses type + schema.SetPropertyDescription(member); + schema.SetPropertyNullable(member); } return; @@ -39,11 +42,11 @@ public void Apply(OpenApiSchema schema, SchemaFilterContext context) } // dealing with any other schemas in general + var dtoType = context.Type; if (context.Type.IsRequestOrResponseType()) { - var requestType = context.Type; - schema.CollateRequiredProperties(requestType); - schema.RemoveRouteTemplateFields(requestType); + schema.CollateRequiredProperties(dtoType); + schema.RemoveRouteTemplateFields(dtoType); } if (context.Type.IsEnum) diff --git a/src/Infrastructure.Web.Hosting.Common/Documentation/DataAnnotationsSchemaFilterExtensions.cs b/src/Infrastructure.Web.Hosting.Common/Documentation/DataAnnotationsSchemaFilterExtensions.cs index 65685494..8eb73967 100644 --- a/src/Infrastructure.Web.Hosting.Common/Documentation/DataAnnotationsSchemaFilterExtensions.cs +++ b/src/Infrastructure.Web.Hosting.Common/Documentation/DataAnnotationsSchemaFilterExtensions.cs @@ -15,23 +15,58 @@ namespace Infrastructure.Web.Hosting.Common.Documentation; internal static class DataAnnotationsSchemaFilterExtensions { /// - /// Collates the required properties of the request type, into the schema + /// Collates the required properties of the request or response type, into the schema /// - public static void CollateRequiredProperties(this OpenApiSchema schema, Type requestType) + public static void CollateRequiredProperties(this OpenApiSchema schema, Type type) { - var properties = requestType.GetProperties(); + var required = schema.Required ?? new HashSet(); + var properties = type.GetProperties(); foreach (var property in properties) { - // we have to add all required properties to the request collection - if (property.IsPropertyRequired()) + if (IsRequestType(type)) { - var name = property.Name.ToCamelCase(); - var required = schema.Required ?? new HashSet(); - // ReSharper disable once PossibleUnintendedLinearSearchInSet - if (!required.Contains(name, StringComparer.OrdinalIgnoreCase)) + if (property.IsRequestPropertyRequired()) { - required.Add(name); + AddToRequired(property); } + else + { + RemoveFromRequired(property); + } + } + + if (IsResponseType(type)) + { + if (property.IsResponsePropertyRequired()) + { + AddToRequired(property); + } + else + { + RemoveFromRequired(property); + } + } + } + + return; + + void AddToRequired(PropertyInfo property) + { + var name = property.Name.ToCamelCase(); + // ReSharper disable once PossibleUnintendedLinearSearchInSet + if (!required.Contains(name, StringComparer.OrdinalIgnoreCase)) + { + required.Add(name); + } + } + + void RemoveFromRequired(PropertyInfo property) + { + var name = property.Name.ToCamelCase(); + // ReSharper disable once PossibleUnintendedLinearSearchInSet + if (required.Contains(name, StringComparer.OrdinalIgnoreCase)) + { + required.Remove(name); } } } @@ -49,7 +84,16 @@ public static bool IsPropertyInRoute(this PropertyInfo property) return IsInRoute(routeAttribute, name); } - public static bool IsPropertyRequired(this PropertyInfo property) + /// + /// Determines if the type is a request or response type, which are the only ones that are annotatable + /// with attributes + /// + public static bool IsRequestOrResponseType(this Type? parent) + { + return IsRequestType(parent) || IsResponseType(parent); + } + + public static bool IsRequestPropertyRequired(this PropertyInfo property) { if (property.HasAttribute()) { @@ -60,14 +104,12 @@ public static bool IsPropertyRequired(this PropertyInfo property) } /// - /// Determines if the type is a request or response type, which are the only ones that are annotatable + /// Determines if the type is a request type, which are the only ones that are annotatable /// with attributes /// - public static bool IsRequestOrResponseType(this Type? parent) + public static bool IsRequestType(this Type? parent) { - return parent.Exists() - && (parent.IsAssignableTo(typeof(IWebRequest)) - || IsResponseType(parent)); + return parent.Exists() && parent.IsAssignableTo(typeof(IWebRequest)); } /// @@ -83,9 +125,9 @@ public static bool IsResponseType(this Type? parent) /// Removes any properties from the schema that are used in the path of the route template, /// which will be passed as route parameters /// - public static void RemoveRouteTemplateFields(this OpenApiSchema schema, Type requestType) + public static void RemoveRouteTemplateFields(this OpenApiSchema schema, Type type) { - var routeAttribute = requestType.GetCustomAttribute(); + var routeAttribute = type.GetCustomAttribute(); if (routeAttribute.NotExists()) { return; @@ -102,7 +144,7 @@ public static void RemoveRouteTemplateFields(this OpenApiSchema schema, Type req return; } - var placeholders = requestType.GetRouteTemplatePlaceholders(); + var placeholders = type.GetRouteTemplatePlaceholders(); foreach (var placeholder in placeholders) { var property = schema.Properties.FirstOrDefault(prop => prop.Key.EqualsIgnoreCase(placeholder.Key)); @@ -157,7 +199,7 @@ public static void SetPropertyDescription(this OpenApiSchema schema, MemberInfo { return; } - + var descriptionAttribute = property.GetCustomAttribute(); if (descriptionAttribute.Exists()) { @@ -179,17 +221,37 @@ public static void SetPropertyNullable(this OpenApiSchema schema, MemberInfo pro } var propertyInfo = (property as PropertyInfo)!; + var isNullable = propertyInfo.IsResponsePropertyNullable(); + + schema.Nullable = isNullable; + } + + public static void SetRequired(this OpenApiParameter parameter, ParameterInfo parameterInfo) + { + if (parameter.In == ParameterLocation.Path + || parameterInfo.GetCustomAttribute().Exists()) + { + parameter.Required = true; + } + } + private static bool IsResponsePropertyRequired(this PropertyInfo propertyInfo) + { + return !propertyInfo.IsResponsePropertyNullable(); + } + + private static bool IsResponsePropertyNullable(this PropertyInfo propertyInfo) + { var isNullable = false; // Check for the [Required] DataAnnotation attribute - if (property.GetCustomAttribute().Exists()) + if (propertyInfo.GetCustomAttribute().Exists()) { isNullable = false; } // Check for the 'required' C# keyword - if (property.GetCustomAttribute().Exists()) + if (propertyInfo.GetCustomAttribute().Exists()) { isNullable = false; } @@ -200,21 +262,12 @@ public static void SetPropertyNullable(this OpenApiSchema schema, MemberInfo pro } // Check for the ? nullable annotation - if (property.GetCustomAttribute().Exists()) + if (propertyInfo.GetCustomAttribute().Exists()) { isNullable = true; } - schema.Nullable = isNullable; - } - - public static void SetRequired(this OpenApiParameter parameter, ParameterInfo parameterInfo) - { - if (parameter.In == ParameterLocation.Path - || parameterInfo.GetCustomAttribute().Exists()) - { - parameter.Required = true; - } + return isNullable; } private static bool IsInRoute(RouteAttribute routeAttribute, string name) diff --git a/src/Infrastructure.Web.Hosting.Common/Documentation/DefaultBodyFilter.cs b/src/Infrastructure.Web.Hosting.Common/Documentation/DefaultBodyFilter.cs index 7a86ae73..cd3f8de0 100644 --- a/src/Infrastructure.Web.Hosting.Common/Documentation/DefaultBodyFilter.cs +++ b/src/Infrastructure.Web.Hosting.Common/Documentation/DefaultBodyFilter.cs @@ -69,7 +69,7 @@ public void Apply(OpenApiOperation operation, OperationFilterContext context) Type = ConvertToSchemaType(context, property) }); - if (property.IsPropertyRequired()) + if (property.IsRequestPropertyRequired()) { requiredParts.Add(name); } @@ -104,7 +104,7 @@ public void Apply(OpenApiOperation operation, OperationFilterContext context) Type = ConvertToSchemaType(context, property) }); - if (property.IsPropertyRequired()) + if (property.IsRequestPropertyRequired()) { requiredParts.Add(name); } diff --git a/src/WebsiteHost/ClientApp/package-lock.json b/src/WebsiteHost/ClientApp/package-lock.json index 7170c6c8..4c4354df 100644 --- a/src/WebsiteHost/ClientApp/package-lock.json +++ b/src/WebsiteHost/ClientApp/package-lock.json @@ -3561,9 +3561,9 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -10030,9 +10030,9 @@ "dev": true }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "requires": { "path-key": "^3.1.0", diff --git a/src/WebsiteHost/ClientApp/src/api/apiHost1.swagger.gen.json b/src/WebsiteHost/ClientApp/src/api/apiHost1.swagger.gen.json index 58ab6cd5..19dbb80d 100644 --- a/src/WebsiteHost/ClientApp/src/api/apiHost1.swagger.gen.json +++ b/src/WebsiteHost/ClientApp/src/api/apiHost1.swagger.gen.json @@ -65,7 +65,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -216,7 +216,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -310,7 +310,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -414,7 +414,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -515,7 +515,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -665,7 +665,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -761,7 +761,7 @@ "description": "The refresh token has expired" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -847,7 +847,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -983,7 +983,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1095,7 +1095,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1205,7 +1205,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1305,7 +1305,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1409,7 +1409,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1578,7 +1578,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1681,7 +1681,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1794,7 +1794,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1898,7 +1898,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2049,7 +2049,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2164,7 +2164,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2277,7 +2277,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2448,7 +2448,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2610,7 +2610,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2717,7 +2717,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2830,7 +2830,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -2934,7 +2934,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3035,7 +3035,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3176,7 +3176,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3272,7 +3272,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3368,7 +3368,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3464,7 +3464,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3511,7 +3511,7 @@ "tags": [ "EmailsApi" ], - "summary": "Lists all email deliveries since the specified date", + "summary": "Lists all email deliveries since the specified date, for the specified tags", "description": "(request type: SearchEmailDeliveriesRequest)", "operationId": "SearchEmailDeliveries", "parameters": [ @@ -3524,6 +3524,17 @@ "format": "date-time" } }, + { + "name": "Tags", + "in": "query", + "style": "form", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, { "name": "Embed", "in": "query", @@ -3614,7 +3625,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3718,7 +3729,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3830,7 +3841,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -3943,7 +3954,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4056,7 +4067,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4162,7 +4173,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4277,7 +4288,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4369,7 +4380,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4472,7 +4483,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4559,7 +4570,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4596,6 +4607,101 @@ } } }, + "/users/me": { + "get": { + "tags": [ + "IdentityApi" + ], + "summary": "Fetches identity details of the user", + "description": "(request type: GetIdentityForCallerRequest)", + "operationId": "GetIdentityForCaller", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetIdentityResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetIdentityResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, "/images/{Id}": { "delete": { "tags": [ @@ -4645,7 +4751,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4749,7 +4855,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4854,7 +4960,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -4967,7 +5073,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5087,7 +5193,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5198,7 +5304,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5302,7 +5408,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5417,7 +5523,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5523,7 +5629,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5619,7 +5725,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5715,7 +5821,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5811,7 +5917,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -5913,7 +6019,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6057,7 +6163,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6102,46 +6208,35 @@ ] } }, - "/organizations/{Id}/roles/assign": { - "put": { + "/passwords/mfa/authenticators": { + "post": { "tags": [ - "OrganizationsApi" - ], - "summary": "Assigns a list of roles to a member of an organization", - "description": "(request type: AssignRolesToOrganizationRequest)", - "operationId": "AssignRolesToOrganization (Put)", - "parameters": [ - { - "name": "Id", - "in": "path", - "required": true, - "style": "simple", - "schema": { - "type": "string" - } - } + "MfaApi" ], + "summary": "Associates another MFA authentication factor to the user. Depending on the specific authenticator, this can send an SMS or email to the user containing a secret code.", + "description": "(request type: AssociatePasswordMfaAuthenticatorForCallerRequest)", + "operationId": "AssociatePasswordMfaAuthenticatorForCaller", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AssignRolesToOrganizationRequest" + "$ref": "#/components/schemas/AssociatePasswordMfaAuthenticatorForCallerRequest" } } } }, "responses": { - "202": { - "description": "Accepted", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/AssociatePasswordMfaAuthenticatorForCallerResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/AssociatePasswordMfaAuthenticatorForCallerResponse" } } } @@ -6172,7 +6267,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6181,7 +6276,7 @@ "description": "Not Found: The server cannot find the requested resource" }, "405": { - "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + "description": "The user has already associated at least one other authenticator, or this authenticator is already associated. You must make a challenge using an existing association" }, "409": { "description": "Conflict: The request conflicts with the current state of the resource" @@ -6206,55 +6301,37 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] + } }, - "patch": { + "get": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Assigns a list of roles to a member of an organization", - "description": "(request type: AssignRolesToOrganizationRequest)", - "operationId": "AssignRolesToOrganization (Patch)", + "summary": "Fetches the MFA authenticators for the user", + "description": "(request type: ListPasswordMfaAuthenticatorsForCallerRequest)", + "operationId": "ListPasswordMfaAuthenticatorsForCaller", "parameters": [ { - "name": "Id", - "in": "path", - "required": true, - "style": "simple", + "name": "MfaToken", + "in": "query", + "style": "form", "schema": { "type": "string" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignRolesToOrganizationRequest" - } - } - } - }, "responses": { - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ListPasswordMfaAuthenticatorsForCallerResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ListPasswordMfaAuthenticatorsForCallerResponse" } } } @@ -6285,7 +6362,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6319,28 +6396,20 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] + } } }, - "/organizations/{Id}/avatar": { + "/passwords/mfa/authenticators/{AuthenticatorId}/challenge": { "put": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Uploads a new avatar for the organization", - "description": "(request type: ChangeOrganizationAvatarRequest)", - "operationId": "ChangeOrganizationAvatar (Put)", + "summary": "Challenges an MFA authenticator for the user. Depending on the specific authenticator, this can send an SMS or email to the user containing a secret code.", + "description": "(request type: ChallengePasswordMfaAuthenticatorForCallerRequest)", + "operationId": "ChallengePasswordMfaAuthenticatorForCaller (Put)", "parameters": [ { - "name": "Id", + "name": "AuthenticatorId", "in": "path", "required": true, "style": "simple", @@ -6351,21 +6420,9 @@ ], "requestBody": { "content": { - "multipart/form-data": { + "application/json": { "schema": { - "required": [ - "files" - ], - "type": "object", - "properties": { - "files": { - "type": "array", - "items": { - "type": "string", - "format": "binary" - } - } - } + "$ref": "#/components/schemas/ChallengePasswordMfaAuthenticatorForCallerRequest" } } } @@ -6376,12 +6433,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChallengePasswordMfaAuthenticatorForCallerResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChallengePasswordMfaAuthenticatorForCallerResponse" } } } @@ -6412,7 +6469,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6446,26 +6503,18 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] + } }, "patch": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Uploads a new avatar for the organization", - "description": "(request type: ChangeOrganizationAvatarRequest)", - "operationId": "ChangeOrganizationAvatar (Patch)", + "summary": "Challenges an MFA authenticator for the user. Depending on the specific authenticator, this can send an SMS or email to the user containing a secret code.", + "description": "(request type: ChallengePasswordMfaAuthenticatorForCallerRequest)", + "operationId": "ChallengePasswordMfaAuthenticatorForCaller (Patch)", "parameters": [ { - "name": "Id", + "name": "AuthenticatorId", "in": "path", "required": true, "style": "simple", @@ -6476,21 +6525,9 @@ ], "requestBody": { "content": { - "multipart/form-data": { + "application/json": { "schema": { - "required": [ - "files" - ], - "type": "object", - "properties": { - "files": { - "type": "array", - "items": { - "type": "string", - "format": "binary" - } - } - } + "$ref": "#/components/schemas/ChallengePasswordMfaAuthenticatorForCallerRequest" } } } @@ -6501,12 +6538,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChallengePasswordMfaAuthenticatorForCallerResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChallengePasswordMfaAuthenticatorForCallerResponse" } } } @@ -6537,7 +6574,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6571,46 +6608,140 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] - }, - "delete": { + } + } + }, + "/passwords/mfa": { + "put": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Removes the avatar of the organization", - "description": "(request type: DeleteOrganizationAvatarRequest)", - "operationId": "DeleteOrganizationAvatar", - "parameters": [ - { - "name": "Id", - "in": "path", - "required": true, - "style": "simple", - "schema": { - "type": "string" + "summary": "Changes whether the user is MFA enabled or not", + "description": "(request type: ChangePasswordMfaForCallerRequest)", + "operationId": "ChangePasswordMfaForCaller (Put)", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordMfaForCallerRequest" + } } } - ], + }, "responses": { - "204": { - "description": "No Content", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChangePasswordMfaResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChangePasswordMfaResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + }, + "patch": { + "tags": [ + "MfaApi" + ], + "summary": "Changes whether the user is MFA enabled or not", + "description": "(request type: ChangePasswordMfaForCallerRequest)", + "operationId": "ChangePasswordMfaForCaller (Patch)", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordMfaForCallerRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordMfaResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordMfaResponse" } } } @@ -6641,7 +6772,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6686,17 +6817,17 @@ ] } }, - "/organizations/{Id}": { + "/passwords/mfa/authenticators/{AuthenticatorType}/confirm": { "put": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Changes the profile of the organization", - "description": "(request type: ChangeOrganizationRequest)", - "operationId": "ChangeOrganization (Put)", + "summary": "Confirms the association of an MFA authenticator for the user, and authenticates the user.", + "description": "(request type: ConfirmPasswordMfaAuthenticatorForCallerRequest)", + "operationId": "ConfirmPasswordMfaAuthenticatorForCaller (Put)", "parameters": [ { - "name": "Id", + "name": "AuthenticatorType", "in": "path", "required": true, "style": "simple", @@ -6709,7 +6840,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ChangeOrganizationRequest" + "$ref": "#/components/schemas/ConfirmPasswordMfaAuthenticatorForCallerRequest" } } } @@ -6720,12 +6851,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ConfirmPasswordMfaAuthenticatorForCallerResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ConfirmPasswordMfaAuthenticatorForCallerResponse" } } } @@ -6756,7 +6887,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6765,7 +6896,7 @@ "description": "Not Found: The server cannot find the requested resource" }, "405": { - "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + "description": "The user has not yet associated an authenticator of the specified type" }, "409": { "description": "Conflict: The request conflicts with the current state of the resource" @@ -6790,26 +6921,18 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] + } }, "patch": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Changes the profile of the organization", - "description": "(request type: ChangeOrganizationRequest)", - "operationId": "ChangeOrganization (Patch)", + "summary": "Confirms the association of an MFA authenticator for the user, and authenticates the user.", + "description": "(request type: ConfirmPasswordMfaAuthenticatorForCallerRequest)", + "operationId": "ConfirmPasswordMfaAuthenticatorForCaller (Patch)", "parameters": [ { - "name": "Id", + "name": "AuthenticatorType", "in": "path", "required": true, "style": "simple", @@ -6822,7 +6945,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ChangeOrganizationRequest" + "$ref": "#/components/schemas/ConfirmPasswordMfaAuthenticatorForCallerRequest" } } } @@ -6833,12 +6956,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ConfirmPasswordMfaAuthenticatorForCallerResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ConfirmPasswordMfaAuthenticatorForCallerResponse" } } } @@ -6869,7 +6992,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -6878,7 +7001,7 @@ "description": "Not Found: The server cannot find the requested resource" }, "405": { - "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + "description": "The user has not yet associated an authenticator of the specified type" }, "409": { "description": "Conflict: The request conflicts with the current state of the resource" @@ -6903,23 +7026,17 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] - }, + } + } + }, + "/passwords/mfa/authenticators/{Id}": { "delete": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Deletes the organization", - "description": "(request type: DeleteOrganizationRequest)", - "operationId": "DeleteOrganization", + "summary": "Disassociates an associated MFA authenticator from the user", + "description": "(request type: DisassociatePasswordMfaAuthenticatorForCallerRequest)", + "operationId": "DisassociatePasswordMfaAuthenticatorForCaller", "parameters": [ { "name": "Id", @@ -6961,7 +7078,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7004,37 +7121,37 @@ "APIKey": [ ] } ] - }, - "get": { + } + }, + "/passwords/mfa/reset": { + "put": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Fetches the profile of the organization", - "description": "(request type: GetOrganizationRequest)", - "operationId": "GetOrganization", - "parameters": [ - { - "name": "Id", - "in": "path", - "required": true, - "style": "simple", - "schema": { - "type": "string" + "summary": "Resets the user MFA status back to the default for all users", + "description": "(request type: ResetPasswordMfaRequest)", + "operationId": "ResetPasswordMfa (Put)", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetPasswordMfaRequest" + } } } - ], + }, "responses": { - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChangePasswordMfaResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChangePasswordMfaResponse" } } } @@ -7065,7 +7182,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7108,37 +7225,35 @@ "APIKey": [ ] } ] - } - }, - "/organizations": { - "post": { + }, + "patch": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Creates a new organization to share with other users", - "description": "(request type: CreateOrganizationRequest)", - "operationId": "CreateOrganization", + "summary": "Resets the user MFA status back to the default for all users", + "description": "(request type: ResetPasswordMfaRequest)", + "operationId": "ResetPasswordMfa (Patch)", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateOrganizationRequest" + "$ref": "#/components/schemas/ResetPasswordMfaRequest" } } } }, "responses": { - "201": { - "description": "Created", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChangePasswordMfaResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationResponse" + "$ref": "#/components/schemas/ChangePasswordMfaResponse" } } } @@ -7169,7 +7284,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7214,17 +7329,17 @@ ] } }, - "/organizations/{Id}/settings": { - "get": { + "/passwords/mfa/authenticators/{AuthenticatorType}/verify": { + "put": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Fetches the settings for an organization", - "description": "(request type: GetOrganizationSettingsRequest)", - "operationId": "GetOrganizationSettings", + "summary": "Verifies an MFA authenticator for the user, and authenticates the user.", + "description": "(request type: VerifyPasswordMfaAuthenticatorForCallerRequest)", + "operationId": "VerifyPasswordMfaAuthenticatorForCaller (Put)", "parameters": [ { - "name": "Id", + "name": "AuthenticatorType", "in": "path", "required": true, "style": "simple", @@ -7233,18 +7348,27 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyPasswordMfaAuthenticatorForCallerRequest" + } + } + } + }, "responses": { - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrganizationSettingsResponse" + "$ref": "#/components/schemas/AuthenticateResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetOrganizationSettingsResponse" + "$ref": "#/components/schemas/AuthenticateResponse" } } } @@ -7275,7 +7399,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7309,28 +7433,18 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] - } - }, - "/organizations/{Id}/members": { - "post": { + } + }, + "patch": { "tags": [ - "OrganizationsApi" + "MfaApi" ], - "summary": "Invites a new member to the organization, either by email address, or by their user ID (if known)", - "description": "(request type: InviteMemberToOrganizationRequest)", - "operationId": "InviteMemberToOrganization", + "summary": "Verifies an MFA authenticator for the user, and authenticates the user.", + "description": "(request type: VerifyPasswordMfaAuthenticatorForCallerRequest)", + "operationId": "VerifyPasswordMfaAuthenticatorForCaller (Patch)", "parameters": [ { - "name": "Id", + "name": "AuthenticatorType", "in": "path", "required": true, "style": "simple", @@ -7343,23 +7457,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/InviteMemberToOrganizationRequest" + "$ref": "#/components/schemas/VerifyPasswordMfaAuthenticatorForCallerRequest" } } } }, "responses": { - "201": { - "description": "Created", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/InviteMemberToOrganizationResponse" + "$ref": "#/components/schemas/AuthenticateResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/InviteMemberToOrganizationResponse" + "$ref": "#/components/schemas/AuthenticateResponse" } } } @@ -7390,7 +7504,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7424,23 +7538,17 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] - }, - "get": { + } + } + }, + "/organizations/{Id}/roles/assign": { + "put": { "tags": [ "OrganizationsApi" ], - "summary": "Fetches all the members of the organization", - "description": "(request type: ListMembersForOrganizationRequest)", - "operationId": "ListMembersForOrganization", + "summary": "Assigns a list of roles to a member of an organization", + "description": "(request type: AssignRolesToOrganizationRequest)", + "operationId": "AssignRolesToOrganization (Put)", "parameters": [ { "name": "Id", @@ -7450,67 +7558,142 @@ "schema": { "type": "string" } - }, - { - "name": "Embed", - "in": "query", - "description": "List of child resources to embed in the resource", - "style": "form", - "schema": { - "type": "string" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignRolesToOrganizationRequest" + } } - }, - { - "name": "Filter", - "in": "query", - "description": "List of fields to include and exclude in the search result", - "style": "form", - "schema": { - "type": "string" + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } } }, - { - "name": "Limit", - "in": "query", - "description": "The maximum number of search results to return", - "style": "form", - "schema": { - "type": "integer", - "format": "int32" + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } } }, - { - "name": "Offset", - "in": "query", - "description": "The zero-based index of the first search result", - "style": "form", - "schema": { - "type": "integer", - "format": "int32" + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } } + } + }, + "security": [ + { + "Bearer": [ ] }, { - "name": "Sort", - "in": "query", - "description": "List of fields to sort the results on", - "style": "form", + "APIKey": [ ] + } + ] + }, + "patch": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Assigns a list of roles to a member of an organization", + "description": "(request type: AssignRolesToOrganizationRequest)", + "operationId": "AssignRolesToOrganization (Patch)", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", "schema": { "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssignRolesToOrganizationRequest" + } + } + } + }, "responses": { - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ListMembersForOrganizationResponse" + "$ref": "#/components/schemas/GetOrganizationResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/ListMembersForOrganizationResponse" + "$ref": "#/components/schemas/GetOrganizationResponse" } } } @@ -7541,7 +7724,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7586,14 +7769,14 @@ ] } }, - "/organizations/{Id}/roles/unassign": { + "/organizations/{Id}/avatar": { "put": { "tags": [ "OrganizationsApi" ], - "summary": "Unassigns the list of roles from a member of an organization", - "description": "(request type: UnassignRolesFromOrganizationRequest)", - "operationId": "UnassignRolesFromOrganization (Put)", + "summary": "Uploads a new avatar for the organization", + "description": "(request type: ChangeOrganizationAvatarRequest)", + "operationId": "ChangeOrganizationAvatar (Put)", "parameters": [ { "name": "Id", @@ -7607,9 +7790,21 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { - "$ref": "#/components/schemas/UnassignRolesFromOrganizationRequest" + "required": [ + "files" + ], + "type": "object", + "properties": { + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + } + } + } } } } @@ -7656,7 +7851,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7704,9 +7899,9 @@ "tags": [ "OrganizationsApi" ], - "summary": "Unassigns the list of roles from a member of an organization", - "description": "(request type: UnassignRolesFromOrganizationRequest)", - "operationId": "UnassignRolesFromOrganization (Patch)", + "summary": "Uploads a new avatar for the organization", + "description": "(request type: ChangeOrganizationAvatarRequest)", + "operationId": "ChangeOrganizationAvatar (Patch)", "parameters": [ { "name": "Id", @@ -7720,9 +7915,21 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { - "$ref": "#/components/schemas/UnassignRolesFromOrganizationRequest" + "required": [ + "files" + ], + "type": "object", + "properties": { + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + } + } + } } } } @@ -7769,7 +7976,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7812,48 +8019,1779 @@ "APIKey": [ ] } ] - } - }, - "/organizations/{Id}/members/{UserId}": { + }, "delete": { "tags": [ "OrganizationsApi" ], - "summary": "Removes a previously invited member from the organization", - "description": "(request type: UnInviteMemberFromOrganizationRequest)", - "operationId": "UnInviteMemberFromOrganization", + "summary": "Removes the avatar of the organization", + "description": "(request type: DeleteOrganizationAvatarRequest)", + "operationId": "DeleteOrganizationAvatar", "parameters": [ { - "name": "UserId", + "name": "Id", "in": "path", "required": true, "style": "simple", "schema": { "type": "string" } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } }, - { - "name": "Id", - "in": "path", - "required": true, - "style": "simple", - "schema": { - "type": "string" + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/organizations/{Id}": { + "put": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Changes the profile of the organization", + "description": "(request type: ChangeOrganizationRequest)", + "operationId": "ChangeOrganization (Put)", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeOrganizationRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + }, + "patch": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Changes the profile of the organization", + "description": "(request type: ChangeOrganizationRequest)", + "operationId": "ChangeOrganization (Patch)", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeOrganizationRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + }, + "delete": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Deletes the organization", + "description": "(request type: DeleteOrganizationRequest)", + "operationId": "DeleteOrganization", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + }, + "get": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Fetches the profile of the organization", + "description": "(request type: GetOrganizationRequest)", + "operationId": "GetOrganization", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/organizations": { + "post": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Creates a new organization to share with other users", + "description": "(request type: CreateOrganizationRequest)", + "operationId": "CreateOrganization", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrganizationRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/organizations/{Id}/settings": { + "get": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Fetches the settings for an organization", + "description": "(request type: GetOrganizationSettingsRequest)", + "operationId": "GetOrganizationSettings", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationSettingsResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationSettingsResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/organizations/{Id}/members": { + "post": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Invites a new member to the organization, either by email address, or by their user ID (if known)", + "description": "(request type: InviteMemberToOrganizationRequest)", + "operationId": "InviteMemberToOrganization", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InviteMemberToOrganizationRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InviteMemberToOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/InviteMemberToOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + }, + "get": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Fetches all the members of the organization", + "description": "(request type: ListMembersForOrganizationRequest)", + "operationId": "ListMembersForOrganization", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "Embed", + "in": "query", + "description": "List of child resources to embed in the resource", + "style": "form", + "schema": { + "type": "string" + } + }, + { + "name": "Filter", + "in": "query", + "description": "List of fields to include and exclude in the search result", + "style": "form", + "schema": { + "type": "string" + } + }, + { + "name": "Limit", + "in": "query", + "description": "The maximum number of search results to return", + "style": "form", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Offset", + "in": "query", + "description": "The zero-based index of the first search result", + "style": "form", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "List of fields to sort the results on", + "style": "form", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMembersForOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/ListMembersForOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/organizations/{Id}/roles/unassign": { + "put": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Unassigns the list of roles from a member of an organization", + "description": "(request type: UnassignRolesFromOrganizationRequest)", + "operationId": "UnassignRolesFromOrganization (Put)", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnassignRolesFromOrganizationRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + }, + "patch": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Unassigns the list of roles from a member of an organization", + "description": "(request type: UnassignRolesFromOrganizationRequest)", + "operationId": "UnassignRolesFromOrganization (Patch)", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnassignRolesFromOrganizationRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/organizations/{Id}/members/{UserId}": { + "delete": { + "tags": [ + "OrganizationsApi" + ], + "summary": "Removes a previously invited member from the organization", + "description": "(request type: UnInviteMemberFromOrganizationRequest)", + "operationId": "UnInviteMemberFromOrganization", + "parameters": [ + { + "name": "UserId", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnInviteMemberFromOrganizationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/UnInviteMemberFromOrganizationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + }, + "security": [ + { + "Bearer": [ ] + }, + { + "APIKey": [ ] + } + ] + } + }, + "/passwords/auth": { + "post": { + "tags": [ + "PasswordCredentialsApi" + ], + "summary": "Authenticates a user with a username and password", + "description": "(request type: AuthenticatePasswordRequest)", + "operationId": "AuthenticatePassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatePasswordRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticateResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/AuthenticateResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "The user's username or password is invalid" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "When the user has authenticated, but has MFA enabled. The details of the error contains a value of \"mfa_required\"." + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "The user has not yet verified their registration" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "The user's account is suspended or disabled, and cannot be authenticated or used" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + } + } + }, + "/passwords/{Token}/reset/complete": { + "post": { + "tags": [ + "PasswordCredentialsApi" + ], + "summary": "Completes a password reset attempt", + "description": "(request type: CompletePasswordResetRequest)", + "operationId": "CompletePasswordReset", + "parameters": [ + { + "name": "Token", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CompletePasswordResetRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EmptyResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/EmptyResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + } + } + }, + "/passwords/confirm-registration": { + "post": { + "tags": [ + "PasswordCredentialsApi" + ], + "summary": "Confirms the invitation to register a new person (verifying their email address)", + "description": "(request type: ConfirmRegistrationPersonPasswordRequest)", + "operationId": "ConfirmRegistrationPersonPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfirmRegistrationPersonPasswordRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfirmRegistrationPersonPasswordResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/ConfirmRegistrationPersonPasswordResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + } + }, + "get": { + "tags": [ + "PasswordCredentialsApi" + ], + "summary": "Fetches the confirmation token for a registration of a person", + "description": "(request type: GetRegistrationPersonConfirmationRequest)", + "operationId": "GetRegistrationPersonConfirmation", + "parameters": [ + { + "name": "UserId", + "in": "query", + "required": true, + "style": "form", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRegistrationPersonConfirmationResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetRegistrationPersonConfirmationResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } } } + } + } + }, + "/passwords/register": { + "post": { + "tags": [ + "PasswordCredentialsApi" ], + "summary": "Registers a new person on the platform", + "description": "(request type: RegisterPersonPasswordRequest)", + "operationId": "RegisterPersonPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterPersonPasswordRequest" + } + } + } + }, "responses": { - "204": { - "description": "No Content", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnInviteMemberFromOrganizationResponse" + "$ref": "#/components/schemas/RegisterPersonPasswordResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/UnInviteMemberFromOrganizationResponse" + "$ref": "#/components/schemas/RegisterPersonPasswordResponse" } } } @@ -7884,7 +9822,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7918,30 +9856,22 @@ } } } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "APIKey": [ ] - } - ] + } } }, - "/passwords/auth": { + "/passwords/reset": { "post": { "tags": [ "PasswordCredentialsApi" ], - "summary": "Authenticates a user with a username and password", - "description": "(request type: AuthenticatePasswordRequest)", - "operationId": "AuthenticatePassword", + "summary": "Begins a password reset attempt", + "description": "(request type: InitiatePasswordResetRequest)", + "operationId": "InitiatePasswordReset", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthenticatePasswordRequest" + "$ref": "#/components/schemas/InitiatePasswordResetRequest" } } } @@ -7952,12 +9882,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthenticateResponse" + "$ref": "#/components/schemas/EmptyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/AuthenticateResponse" + "$ref": "#/components/schemas/EmptyResponse" } } } @@ -7985,10 +9915,10 @@ } }, "401": { - "description": "The user's username or password is invalid" + "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -7997,13 +9927,13 @@ "description": "Not Found: The server cannot find the requested resource" }, "405": { - "description": "The user has not yet verified their registration" + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" }, "409": { "description": "Conflict: The request conflicts with the current state of the resource" }, "423": { - "description": "The user's account is suspended or disabled, and cannot be authenticated or used" + "description": "Locked: The current resource is locked and cannot be accessed" }, "500": { "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", @@ -8025,14 +9955,14 @@ } } }, - "/passwords/{Token}/reset/complete": { + "/passwords/{Token}/reset/resend": { "post": { "tags": [ "PasswordCredentialsApi" ], - "summary": "Completes a password reset attempt", - "description": "(request type: CompletePasswordResetRequest)", - "operationId": "CompletePasswordReset", + "summary": "Resends a password reset attempt (via email)", + "description": "(request type: ResendPasswordResetRequest)", + "operationId": "ResendPasswordReset", "parameters": [ { "name": "Token", @@ -8048,7 +9978,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CompletePasswordResetRequest" + "$ref": "#/components/schemas/ResendPasswordResetRequest" } } } @@ -8095,7 +10025,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8132,35 +10062,37 @@ } } }, - "/passwords/confirm-registration": { - "post": { + "/passwords/{Token}/reset/verify": { + "get": { "tags": [ "PasswordCredentialsApi" ], - "summary": "Confirms the invitation to register a new person (verifying their email address)", - "description": "(request type: ConfirmRegistrationPersonPasswordRequest)", - "operationId": "ConfirmRegistrationPersonPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConfirmRegistrationPersonPasswordRequest" - } + "summary": "Verifies that the password reset attempt is still valid", + "description": "(request type: VerifyPasswordResetRequest)", + "operationId": "VerifyPasswordReset", + "parameters": [ + { + "name": "Token", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" } } - }, + ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConfirmRegistrationPersonPasswordResponse" + "$ref": "#/components/schemas/EmptyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/ConfirmRegistrationPersonPasswordResponse" + "$ref": "#/components/schemas/EmptyResponse" } } } @@ -8191,7 +10123,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8226,37 +10158,28 @@ } } } - }, + } + }, + "/pricing/plans": { "get": { "tags": [ - "PasswordCredentialsApi" - ], - "summary": "Fetches the confirmation token for a registration of a person", - "description": "(request type: GetRegistrationPersonConfirmationRequest)", - "operationId": "GetRegistrationPersonConfirmation", - "parameters": [ - { - "name": "UserId", - "in": "query", - "required": true, - "style": "form", - "schema": { - "type": "string" - } - } + "PricingApi" ], + "summary": "List all the pricing plans available for this product", + "description": "(request type: ListPricingPlansRequest)", + "operationId": "ListPricingPlans", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRegistrationPersonConfirmationResponse" + "$ref": "#/components/schemas/ListPricingPlansResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/GetRegistrationPersonConfirmationResponse" + "$ref": "#/components/schemas/ListPricingPlansResponse" } } } @@ -8287,7 +10210,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8324,19 +10247,19 @@ } } }, - "/passwords/register": { + "/provisioning/drain": { "post": { "tags": [ - "PasswordCredentialsApi" + "ProvisioningsApi" ], - "summary": "Registers a new person on the platform", - "description": "(request type: RegisterPersonPasswordRequest)", - "operationId": "RegisterPersonPassword", + "summary": "Drains all the pending provisioning messages", + "description": "(request type: DrainAllProvisioningsRequest)", + "operationId": "DrainAllProvisionings", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RegisterPersonPasswordRequest" + "$ref": "#/components/schemas/DrainAllProvisioningsRequest" } } } @@ -8347,12 +10270,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RegisterPersonPasswordResponse" + "$ref": "#/components/schemas/EmptyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/RegisterPersonPasswordResponse" + "$ref": "#/components/schemas/EmptyResponse" } } } @@ -8383,7 +10306,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8417,22 +10340,27 @@ } } } - } + }, + "security": [ + { + "HMAC": [ ] + } + ] } }, - "/passwords/reset": { + "/provisioning/notify": { "post": { "tags": [ - "PasswordCredentialsApi" + "ProvisioningsApi" ], - "summary": "Begins a password reset attempt", - "description": "(request type: InitiatePasswordResetRequest)", - "operationId": "InitiatePasswordReset", + "summary": "Notifies when provisioning of a service has been completed", + "description": "(request type: NotifyProvisioningRequest)", + "operationId": "NotifyProvisioning", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/InitiatePasswordResetRequest" + "$ref": "#/components/schemas/NotifyProvisioningRequest" } } } @@ -8443,12 +10371,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EmptyResponse" + "$ref": "#/components/schemas/DeliverMessageResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/EmptyResponse" + "$ref": "#/components/schemas/DeliverMessageResponse" } } } @@ -8479,7 +10407,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8513,33 +10441,27 @@ } } } - } + }, + "security": [ + { + "HMAC": [ ] + } + ] } }, - "/passwords/{Token}/reset/resend": { + "/record/measure": { "post": { "tags": [ - "PasswordCredentialsApi" - ], - "summary": "Resends a password reset attempt (via email)", - "description": "(request type: ResendPasswordResetRequest)", - "operationId": "ResendPasswordReset", - "parameters": [ - { - "name": "Token", - "in": "path", - "required": true, - "style": "simple", - "schema": { - "type": "string" - } - } + "RecordingApi" ], + "summary": "Measures an event in the product", + "description": "(request type: RecordMeasureRequest)", + "operationId": "RecordMeasure", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResendPasswordResetRequest" + "$ref": "#/components/schemas/RecordMeasureRequest" } } } @@ -8586,7 +10508,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8620,31 +10542,34 @@ } } } - } + }, + "security": [ + { + "HMAC": [ ] + } + ] } }, - "/passwords/{Token}/reset/verify": { - "get": { + "/record/use": { + "post": { "tags": [ - "PasswordCredentialsApi" + "RecordingApi" ], - "summary": "Verifies that the password reset attempt is still valid", - "description": "(request type: VerifyPasswordResetRequest)", - "operationId": "VerifyPasswordReset", - "parameters": [ - { - "name": "Token", - "in": "path", - "required": true, - "style": "simple", - "schema": { - "type": "string" + "summary": "Records a usage of the product", + "description": "(request type: RecordUseRequest)", + "operationId": "RecordUse", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecordUseRequest" + } } } - ], + }, "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "content": { "application/json": { "schema": { @@ -8684,7 +10609,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8718,29 +10643,43 @@ } } } - } + }, + "security": [ + { + "HMAC": [ ] + } + ] } }, - "/pricing/plans": { - "get": { + "/sso/auth": { + "post": { "tags": [ - "PricingApi" + "SingleSignOnApi" ], - "summary": "List all the pricing plans available for this product", - "description": "(request type: ListPricingPlansRequest)", - "operationId": "ListPricingPlans", + "summary": "Authenticates a user with a single sign-on provider (also auto-registering them the first time)", + "description": "(request type: AuthenticateSingleSignOnRequest)", + "operationId": "AuthenticateSingleSignOn", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticateSingleSignOnRequest" + } + } + } + }, "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ListPricingPlansResponse" + "$ref": "#/components/schemas/AuthenticateResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/ListPricingPlansResponse" + "$ref": "#/components/schemas/AuthenticateResponse" } } } @@ -8768,10 +10707,10 @@ } }, "401": { - "description": "Unauthorized: The client must authenticate itself to get the requested response" + "description": "The provider is not known, or the code is invalid" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8786,7 +10725,7 @@ "description": "Conflict: The request conflicts with the current state of the resource" }, "423": { - "description": "Locked: The current resource is locked and cannot be accessed" + "description": "The user's account is suspended or disabled, and cannot be authenticated or used" }, "500": { "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", @@ -8808,19 +10747,19 @@ } } }, - "/provisioning/drain": { + "/smses/delivered": { "post": { "tags": [ - "ProvisioningsApi" + "SmsesApi" ], - "summary": "Drains all the pending provisioning messages", - "description": "(request type: DrainAllProvisioningsRequest)", - "operationId": "DrainAllProvisionings", + "summary": "Confirms the delivery of a sent SMS message", + "description": "(request type: ConfirmSmsDeliveredRequest)", + "operationId": "ConfirmSmsDelivered", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DrainAllProvisioningsRequest" + "$ref": "#/components/schemas/ConfirmSmsDeliveredRequest" } } } @@ -8867,7 +10806,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -8901,27 +10840,22 @@ } } } - }, - "security": [ - { - "HMAC": [ ] - } - ] + } } }, - "/provisioning/notify": { + "/smses/failed": { "post": { "tags": [ - "ProvisioningsApi" + "SmsesApi" ], - "summary": "Notifies when provisioning of a service has been completed", - "description": "(request type: NotifyProvisioningRequest)", - "operationId": "NotifyProvisioning", + "summary": "Confirms the failed delivery of a sent SMS message", + "description": "(request type: ConfirmSmsDeliveryFailedRequest)", + "operationId": "ConfirmSmsDeliveryFailed", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotifyProvisioningRequest" + "$ref": "#/components/schemas/ConfirmSmsDeliveryFailedRequest" } } } @@ -8932,12 +10866,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DeliverMessageResponse" + "$ref": "#/components/schemas/EmptyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/DeliverMessageResponse" + "$ref": "#/components/schemas/EmptyResponse" } } } @@ -8968,7 +10902,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9002,27 +10936,22 @@ } } } - }, - "security": [ - { - "HMAC": [ ] - } - ] + } } }, - "/record/measure": { + "/smses/drain": { "post": { "tags": [ - "RecordingApi" + "SmsesApi" ], - "summary": "Measures an event in the product", - "description": "(request type: RecordMeasureRequest)", - "operationId": "RecordMeasure", + "summary": "Drains all the pending SMS messages", + "description": "(request type: DrainAllSmsesRequest)", + "operationId": "DrainAllSmses", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RecordMeasureRequest" + "$ref": "#/components/schemas/DrainAllSmsesRequest" } } } @@ -9069,7 +10998,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9111,35 +11040,95 @@ ] } }, - "/record/use": { - "post": { + "/smses": { + "get": { "tags": [ - "RecordingApi" + "SmsesApi" ], - "summary": "Records a usage of the product", - "description": "(request type: RecordUseRequest)", - "operationId": "RecordUse", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RecordUseRequest" + "summary": "Lists all SMS deliveries since the specified date, for the specified tags", + "description": "(request type: SearchSmsDeliveriesRequest)", + "operationId": "SearchSmsDeliveries", + "parameters": [ + { + "name": "SinceUtc", + "in": "query", + "style": "form", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "Tags", + "in": "query", + "style": "form", + "schema": { + "type": "array", + "items": { + "type": "string" } } + }, + { + "name": "Embed", + "in": "query", + "description": "List of child resources to embed in the resource", + "style": "form", + "schema": { + "type": "string" + } + }, + { + "name": "Filter", + "in": "query", + "description": "List of fields to include and exclude in the search result", + "style": "form", + "schema": { + "type": "string" + } + }, + { + "name": "Limit", + "in": "query", + "description": "The maximum number of search results to return", + "style": "form", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Offset", + "in": "query", + "description": "The zero-based index of the first search result", + "style": "form", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "List of fields to sort the results on", + "style": "form", + "schema": { + "type": "string" + } } - }, + ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EmptyResponse" + "$ref": "#/components/schemas/SearchSmsDeliveriesResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/EmptyResponse" + "$ref": "#/components/schemas/SearchSmsDeliveriesResponse" } } } @@ -9170,7 +11159,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9207,24 +11196,27 @@ }, "security": [ { - "HMAC": [ ] + "Bearer": [ ] + }, + { + "APIKey": [ ] } ] } }, - "/sso/auth": { + "/smses/send": { "post": { "tags": [ - "SingleSignOnApi" + "SmsesApi" ], - "summary": "Authenticates a user with a single sign-on provider (also auto-registering them the first time)", - "description": "(request type: AuthenticateSingleSignOnRequest)", - "operationId": "AuthenticateSingleSignOn", + "summary": "Sends an SMS message for delivery", + "description": "(request type: SendSmsRequest)", + "operationId": "SendSms", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthenticateSingleSignOnRequest" + "$ref": "#/components/schemas/SendSmsRequest" } } } @@ -9235,12 +11227,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthenticateResponse" + "$ref": "#/components/schemas/DeliverMessageResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/AuthenticateResponse" + "$ref": "#/components/schemas/DeliverMessageResponse" } } } @@ -9268,10 +11260,10 @@ } }, "401": { - "description": "The provider is not known, or the code is invalid" + "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9286,7 +11278,7 @@ "description": "Conflict: The request conflicts with the current state of the resource" }, "423": { - "description": "The user's account is suspended or disabled, and cannot be authenticated or used" + "description": "Locked: The current resource is locked and cannot be accessed" }, "500": { "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", @@ -9305,7 +11297,12 @@ } } } - } + }, + "security": [ + { + "HMAC": [ ] + } + ] } }, "/subscriptions/{Id}": { @@ -9369,7 +11366,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9473,7 +11470,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9588,7 +11585,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9701,7 +11698,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9807,7 +11804,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -9978,7 +11975,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10093,7 +12090,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10206,7 +12203,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10301,7 +12298,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10393,7 +12390,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10488,7 +12485,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10575,7 +12572,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10670,7 +12667,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10775,7 +12772,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10871,7 +12868,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -10958,7 +12955,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11045,7 +13042,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11141,7 +13138,107 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + } + } + }, + "/testingonly/general/get/array": { + "get": { + "tags": [ + "TestingWebApi" + ], + "summary": "Tests the use of an array in a GET request", + "description": "(request type: GetWithSimpleArrayTestingOnlyRequest)", + "operationId": "GetWithSimpleArrayTestingOnly", + "parameters": [ + { + "name": "AnArray", + "in": "query", + "style": "form", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11183,7 +13280,7 @@ "tags": [ "TestingWebApi" ], - "summary": "Tests the use of an empty post body", + "summary": "Tests the use of an empty body in a POST request", "description": "(request type: PostWithEmptyBodyTestingOnlyRequest)", "operationId": "PostWithEmptyBodyTestingOnly", "requestBody": { @@ -11237,7 +13334,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11353,7 +13450,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11449,7 +13546,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11536,7 +13633,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11630,7 +13727,125 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + } + } + }, + "/testingonly/openapi/{Id}/urlencoded": { + "post": { + "tags": [ + "TestingWebApi" + ], + "summary": "Tests OpenAPI swagger for application/x-www-form-urlencoded POST requests", + "description": "(request type: OpenApiPostFormUrlEncodedTestingOnlyRequest)", + "operationId": "OpenApiPostFormUrlEncodedTestingOnly", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "required": [ + "requiredField" + ], + "type": "object", + "properties": { + "optionalField": { + "type": "string" + }, + "requiredField": { + "type": "string" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11672,7 +13887,7 @@ "tags": [ "TestingWebApi" ], - "summary": "Tests OpenAPI swagger for GET requests", + "summary": "Tests OpenAPI swagger for GET requests This includes multiple lines explaining things", "description": "(request type: OpenApiGetTestingOnlyRequest)", "operationId": "OpenApiGetTestingOnly", "parameters": [ @@ -11712,12 +13927,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } } } @@ -11748,7 +13963,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11817,12 +14032,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } } } @@ -11853,7 +14068,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -11865,7 +14080,7 @@ "description": "Method Not Allowed: The request is not allowed by the current state of the resource" }, "409": { - "description": "a custom conflict response" + "description": "a custom conflict response which spills over to the next line" }, "419": { "description": "a special response" @@ -11925,12 +14140,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } } } @@ -11961,7 +14176,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12033,12 +14248,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } } } @@ -12069,7 +14284,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12109,14 +14324,14 @@ } } }, - "/testingonly/openapi/{Id}/binary": { + "/testingonly/openapi/{Id}/form-data": { "post": { "tags": [ "TestingWebApi" ], - "summary": "Tests OpenAPI swagger for multipart-form POST requests", - "description": "(request type: OpenApiPostMultiPartFormTestingOnlyRequest)", - "operationId": "OpenApiPostMultiPartFormTestingOnly", + "summary": "Tests OpenAPI swagger for multipart/form-data POST requests", + "description": "(request type: OpenApiPostMultiPartFormDataTestingOnlyRequest)", + "operationId": "OpenApiPostMultiPartFormDataTestingOnly", "parameters": [ { "name": "Id", @@ -12162,12 +14377,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } }, "application/xml": { "schema": { - "$ref": "#/components/schemas/StringMessageTestingOnlyResponse" + "$ref": "#/components/schemas/OpenApiTestingOnlyResponse" } } } @@ -12198,7 +14413,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12285,7 +14500,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12360,7 +14575,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12447,7 +14662,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12534,7 +14749,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12630,7 +14845,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12726,7 +14941,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12822,7 +15037,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -12916,7 +15131,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13003,7 +15218,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13100,7 +15315,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13215,7 +15430,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13320,7 +15535,125 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" + }, + "403": { + "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + }, + "404": { + "description": "Not Found: The server cannot find the requested resource" + }, + "405": { + "description": "Method Not Allowed: The request is not allowed by the current state of the resource" + }, + "409": { + "description": "Conflict: The request conflicts with the current state of the resource" + }, + "423": { + "description": "Locked: The current resource is locked and cannot be accessed" + }, + "500": { + "description": "Internal Server Error: An unexpected error occured on the server, which should not have happened in normal operation", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Unexpected": { + "summary": "Unexpected Error", + "description": "An unexpected error occured on the server, which should not have happened in normal operation. Please report this error, and the conditions under which it was discovered, to the support team.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.6.1\",\r\n \"title\": \"An error occurred while processing your request.\",\r\n \"status\": 500,\r\n \"detail\": \"A description of the error\"\r\n}" + } + } + } + } + } + } + } + }, + "/webhooks/twilio": { + "post": { + "tags": [ + "TwilioApi" + ], + "summary": "Notifies a Twilio event, via a webhook", + "description": "(request type: TwilioNotifyWebhookEventRequest)", + "operationId": "TwilioNotifyWebhookEvent", + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string" + }, + "errorCode": { + "type": "string" + }, + "from": { + "type": "string" + }, + "messageSid": { + "type": "string" + }, + "messageStatus": { }, + "rawDlrDoneDate": { + "type": "integer" + }, + "smsStatus": { }, + "to": { + "type": "string" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EmptyResponse" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/EmptyResponse" + } + } + } + }, + "400": { + "description": "Bad Request: The server cannot or will not process the request due to something that is perceived to be a client error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + }, + "examples": { + "Validation": { + "summary": "Validation Error", + "description": "The incoming request is invalid in some way. The 'errors' will contain the details of each of the validation errors.", + "value": "{\r\n \"type\": \"https://datatracker.ietf.org/doc/html/rfc9110#section-15.5\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"The error for FieldA\",\r\n \"instance\": \"https://api.server.com/resource/123\",\r\n \"errors\": [\r\n {\r\n \"reason\": \"The error for FieldA\",\r\n \"rule\": \"The Code for FieldA\"\r\n },\r\n {\r\n \"reason\": \"The error for FieldB\",\r\n \"rule\": \"The Code for FieldB\"\r\n }\r\n ]\r\n}" + }, + "RuleViolation": { + "summary": "Rule Violation", + "description": "A violation of a rule about whether this operation can be executed by this caller, or in the state the resource is in, at this time.", + "value": "{\r\n \"type\": \"https://tools.ietf.org/html/rfc9110#section-15.5.1\",\r\n \"title\": \"Bad Request\",\r\n \"status\": 400,\r\n \"detail\": \"A description of the violation\"\r\n}" + } + } + } + } + }, + "401": { + "description": "Unauthorized: The client must authenticate itself to get the requested response" + }, + "402": { + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13416,7 +15749,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13517,7 +15850,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13629,7 +15962,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13742,7 +16075,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13857,7 +16190,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -13970,7 +16303,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -14097,7 +16430,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -14222,7 +16555,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -14326,7 +16659,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -14421,7 +16754,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -14504,23 +16837,55 @@ }, "additionalProperties": false }, - "AssignRolesToOrganizationRequest": { + "AssignRolesToOrganizationRequest": { + "required": [ + "id", + "userId" + ], + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "userId": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "AssociatePasswordMfaAuthenticatorForCallerRequest": { + "required": [ + "authenticatorType" + ], + "type": "object", + "properties": { + "authenticatorType": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + }, + "mfaToken": { + "type": "string", + "nullable": true + }, + "phoneNumber": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AssociatePasswordMfaAuthenticatorForCallerResponse": { "required": [ - "id", - "userId" + "authenticator" ], "type": "object", "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "userId": { - "minLength": 1, - "type": "string" + "authenticator": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticatorAssociation" } }, "additionalProperties": false @@ -14577,6 +16942,9 @@ "additionalProperties": false }, "AuthenticateResponse": { + "required": [ + "tokens" + ], "type": "object", "properties": { "tokens": { @@ -14753,6 +17121,32 @@ }, "additionalProperties": false }, + "ChallengePasswordMfaAuthenticatorForCallerRequest": { + "required": [ + "authenticatorId", + "mfaToken" + ], + "type": "object", + "properties": { + "mfaToken": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "ChallengePasswordMfaAuthenticatorForCallerResponse": { + "required": [ + "challenge" + ], + "type": "object", + "properties": { + "challenge": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticatorChallenge" + } + }, + "additionalProperties": false + }, "ChangeDefaultOrganizationRequest": { "required": [ "organizationId" @@ -14779,7 +17173,34 @@ }, "additionalProperties": false }, + "ChangePasswordMfaForCallerRequest": { + "required": [ + "isEnabled" + ], + "type": "object", + "properties": { + "isEnabled": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ChangePasswordMfaResponse": { + "required": [ + "credential" + ], + "type": "object", + "properties": { + "credential": { + "$ref": "#/components/schemas/PasswordCredential" + } + }, + "additionalProperties": false + }, "ChangeProfileAvatarResponse": { + "required": [ + "profile" + ], "type": "object", "properties": { "profile": { @@ -14921,6 +17342,47 @@ }, "additionalProperties": false }, + "ConfirmPasswordMfaAuthenticatorForCallerRequest": { + "required": [ + "authenticatorType", + "confirmationCode" + ], + "type": "object", + "properties": { + "confirmationCode": { + "minLength": 1, + "type": "string" + }, + "mfaToken": { + "type": "string", + "nullable": true + }, + "oobCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ConfirmPasswordMfaAuthenticatorForCallerResponse": { + "required": [ + "tokens" + ], + "type": "object", + "properties": { + "authenticators": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticator" + }, + "nullable": true + }, + "tokens": { + "$ref": "#/components/schemas/AuthenticateTokens" + } + }, + "additionalProperties": false + }, "ConfirmRegistrationPersonPasswordRequest": { "required": [ "token" @@ -14938,6 +17400,46 @@ "type": "object", "additionalProperties": false }, + "ConfirmSmsDeliveredRequest": { + "required": [ + "receiptId" + ], + "type": "object", + "properties": { + "deliveredAtUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "receiptId": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "ConfirmSmsDeliveryFailedRequest": { + "required": [ + "receiptId" + ], + "type": "object", + "properties": { + "failedAtUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "reason": { + "type": "string", + "nullable": true + }, + "receiptId": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, "CreateAPIKeyForCallerRequest": { "type": "object", "properties": { @@ -14950,11 +17452,13 @@ "additionalProperties": false }, "CreateAPIKeyResponse": { + "required": [ + "apiKey" + ], "type": "object", "properties": { "apiKey": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false @@ -15002,6 +17506,7 @@ }, "CustomEnum": { "enum": [ + "None", "One", "TwentyOne", "OneHundredAndOne" @@ -15009,6 +17514,9 @@ "type": "string" }, "DeleteProfileAvatarResponse": { + "required": [ + "profile" + ], "type": "object", "properties": { "profile": { @@ -15031,6 +17539,9 @@ "additionalProperties": false }, "DeliverMessageResponse": { + "required": [ + "isSent" + ], "type": "object", "properties": { "isSent": { @@ -15099,6 +17610,13 @@ "type": "string", "nullable": true }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, "toDisplayName": { "type": "string", "nullable": true @@ -15114,6 +17632,67 @@ }, "additionalProperties": false }, + "DeliveredSms": { + "type": "object", + "properties": { + "attempts": { + "type": "array", + "items": { + "type": "string", + "format": "date-time" + }, + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "deliveredAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "failedDeliveryAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "failedDeliveryReason": { + "type": "string", + "nullable": true + }, + "isDelivered": { + "type": "boolean" + }, + "isDeliveryFailed": { + "type": "boolean" + }, + "isSent": { + "type": "boolean" + }, + "sentAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "toPhoneNumber": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, "DestroyAllRepositoriesRequest": { "type": "object", "additionalProperties": false @@ -15168,6 +17747,10 @@ "type": "object", "additionalProperties": false }, + "DrainAllSmsesRequest": { + "type": "object", + "additionalProperties": false + }, "DrainAllUsagesRequest": { "type": "object", "additionalProperties": false @@ -15271,6 +17854,10 @@ "additionalProperties": false }, "ExportSubscriptionsToMigrateResponse": { + "required": [ + "metadata", + "subscriptions" + ], "type": "object", "properties": { "metadata": { @@ -15280,8 +17867,7 @@ "type": "array", "items": { "$ref": "#/components/schemas/SubscriptionToMigrate" - }, - "nullable": true + } } }, "additionalProperties": false @@ -15345,6 +17931,10 @@ "additionalProperties": false }, "FormatsTestingOnlyResponse": { + "required": [ + "custom", + "string" + ], "type": "object", "properties": { "custom": { @@ -15364,8 +17954,7 @@ "nullable": true }, "string": { - "type": "string", - "nullable": true + "type": "string" }, "time": { "type": "string", @@ -15376,29 +17965,36 @@ "additionalProperties": false }, "GetAllFeatureFlagsResponse": { + "required": [ + "flags" + ], "type": "object", "properties": { "flags": { "type": "array", "items": { "$ref": "#/components/schemas/FeatureFlag" - }, - "nullable": true + } } }, "additionalProperties": false }, "GetCallerTestingOnlyResponse": { + "required": [ + "callerId" + ], "type": "object", "properties": { "callerId": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false }, "GetCarResponse": { + "required": [ + "car" + ], "type": "object", "properties": { "car": { @@ -15408,6 +18004,9 @@ "additionalProperties": false }, "GetFeatureFlagResponse": { + "required": [ + "flag" + ], "type": "object", "properties": { "flag": { @@ -15416,7 +18015,22 @@ }, "additionalProperties": false }, + "GetIdentityResponse": { + "required": [ + "identity" + ], + "type": "object", + "properties": { + "identity": { + "$ref": "#/components/schemas/Identity" + } + }, + "additionalProperties": false + }, "GetImageResponse": { + "required": [ + "image" + ], "type": "object", "properties": { "image": { @@ -15426,6 +18040,9 @@ "additionalProperties": false }, "GetOrganizationResponse": { + "required": [ + "organization" + ], "type": "object", "properties": { "organization": { @@ -15435,6 +18052,10 @@ "additionalProperties": false }, "GetOrganizationSettingsResponse": { + "required": [ + "organization", + "settings" + ], "type": "object", "properties": { "organization": { @@ -15444,13 +18065,15 @@ "type": "object", "additionalProperties": { "type": "string" - }, - "nullable": true + } } }, "additionalProperties": false }, "GetProfileForCallerResponse": { + "required": [ + "profile" + ], "type": "object", "properties": { "profile": { @@ -15460,6 +18083,9 @@ "additionalProperties": false }, "GetProfileResponse": { + "required": [ + "profile" + ], "type": "object", "properties": { "profile": { @@ -15469,16 +18095,21 @@ "additionalProperties": false }, "GetRegistrationPersonConfirmationResponse": { + "required": [ + "token" + ], "type": "object", "properties": { "token": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false }, "GetSubscriptionResponse": { + "required": [ + "subscription" + ], "type": "object", "properties": { "subscription": { @@ -15488,6 +18119,9 @@ "additionalProperties": false }, "GetUserResponse": { + "required": [ + "user" + ], "type": "object", "properties": { "user": { @@ -15497,13 +18131,31 @@ "additionalProperties": false }, "HealthCheckResponse": { + "required": [ + "name", + "status" + ], "type": "object", "properties": { "name": { - "type": "string", - "nullable": true + "type": "string" }, "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Identity": { + "type": "object", + "properties": { + "isMfaEnabled": { + "type": "boolean" + }, + "hasCredentials": { + "type": "boolean" + }, + "id": { "type": "string", "nullable": true } @@ -15581,6 +18233,9 @@ "additionalProperties": false }, "InviteGuestResponse": { + "required": [ + "invitation" + ], "type": "object", "properties": { "invitation": { @@ -15607,6 +18262,9 @@ "additionalProperties": false }, "InviteMemberToOrganizationResponse": { + "required": [ + "organization" + ], "type": "object", "properties": { "organization": { @@ -15769,6 +18427,10 @@ "additionalProperties": false }, "ListMembersForOrganizationResponse": { + "required": [ + "members", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -15778,13 +18440,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/OrganizationMember" - }, - "nullable": true + } } }, "additionalProperties": false }, "ListMembershipsForCallerResponse": { + "required": [ + "memberships", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -15794,13 +18459,30 @@ "type": "array", "items": { "$ref": "#/components/schemas/Membership" - }, - "nullable": true + } + } + }, + "additionalProperties": false + }, + "ListPasswordMfaAuthenticatorsForCallerResponse": { + "required": [ + "authenticators" + ], + "type": "object", + "properties": { + "authenticators": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticator" + } } }, "additionalProperties": false }, "ListPricingPlansResponse": { + "required": [ + "plans" + ], "type": "object", "properties": { "plans": { @@ -15969,6 +18651,9 @@ "additionalProperties": false }, "MakeBookingResponse": { + "required": [ + "booking" + ], "type": "object", "properties": { "booking": { @@ -16037,6 +18722,9 @@ "additionalProperties": false }, "MigrateSubscriptionResponse": { + "required": [ + "subscription" + ], "type": "object", "properties": { "subscription": { @@ -16111,6 +18799,43 @@ }, "additionalProperties": false }, + "OpenApiTestingOnlyResponse": { + "required": [ + "anAnnotatedRequiredField", + "anInitializedField", + "aRequiredField", + "aValueTypeField", + "message" + ], + "type": "object", + "properties": { + "anAnnotatedRequiredField": { + "minLength": 1, + "type": "string" + }, + "anInitializedField": { + "type": "string" + }, + "aNullableField": { + "type": "string", + "nullable": true + }, + "aNullableValueTypeField": { + "type": "boolean", + "nullable": true + }, + "aRequiredField": { + "type": "string" + }, + "aValueTypeField": { + "type": "boolean" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false + }, "Organization": { "type": "object", "properties": { @@ -16193,6 +18918,9 @@ "PasswordCredential": { "type": "object", "properties": { + "isMfaEnabled": { + "type": "boolean" + }, "user": { "$ref": "#/components/schemas/EndUser" }, @@ -16203,6 +18931,73 @@ }, "additionalProperties": false }, + "PasswordCredentialMfaAuthenticator": { + "type": "object", + "properties": { + "isActive": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + }, + "id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PasswordCredentialMfaAuthenticatorAssociation": { + "type": "object", + "properties": { + "barCodeUri": { + "type": "string", + "nullable": true + }, + "oobCode": { + "type": "string", + "nullable": true + }, + "recoveryCodes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "secret": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + } + }, + "additionalProperties": false + }, + "PasswordCredentialMfaAuthenticatorChallenge": { + "type": "object", + "properties": { + "oobCode": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + } + }, + "additionalProperties": false + }, + "PasswordCredentialMfaAuthenticatorType": { + "enum": [ + "None", + "RecoveryCodes", + "OobSms", + "OobEmail", + "TotpAuthenticator" + ], + "type": "string" + }, "PaymentMethodStatus": { "enum": [ "Invalid", @@ -16520,6 +19315,9 @@ "additionalProperties": false }, "RefreshTokenResponse": { + "required": [ + "tokens" + ], "type": "object", "properties": { "tokens": { @@ -16593,6 +19391,9 @@ "additionalProperties": false }, "RegisterMachineResponse": { + "required": [ + "machine" + ], "type": "object", "properties": { "machine": { @@ -16645,6 +19446,9 @@ "additionalProperties": false }, "RegisterPersonPasswordResponse": { + "required": [ + "credential" + ], "type": "object", "properties": { "credential": { @@ -16667,6 +19471,16 @@ "type": "object", "additionalProperties": false }, + "ResetPasswordMfaRequest": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, "ScheduleMaintenanceCarRequest": { "required": [ "id" @@ -16690,6 +19504,10 @@ "additionalProperties": false }, "SearchAllAPIKeysResponse": { + "required": [ + "keys", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16699,13 +19517,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/APIKey" - }, - "nullable": true + } } }, "additionalProperties": false }, "SearchAllAuditsResponse": { + "required": [ + "audits", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16715,13 +19536,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/Audit" - }, - "nullable": true + } } }, "additionalProperties": false }, "SearchAllBookingsResponse": { + "required": [ + "bookings", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16731,13 +19555,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/Booking" - }, - "nullable": true + } } }, "additionalProperties": false }, "SearchAllCarUnavailabilitiesResponse": { + "required": [ + "metadata", + "unavailabilities" + ], "type": "object", "properties": { "metadata": { @@ -16747,13 +19574,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/Unavailability" - }, - "nullable": true + } } }, "additionalProperties": false }, "SearchAllCarsResponse": { + "required": [ + "cars", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16763,13 +19593,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/Car" - }, - "nullable": true + } } }, "additionalProperties": false }, "SearchAllDomainEventsResponse": { + "required": [ + "events", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16779,13 +19612,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/DomainEvent" - }, - "nullable": true + } } }, "additionalProperties": false }, "SearchEmailDeliveriesResponse": { + "required": [ + "emails", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16795,8 +19631,7 @@ "type": "array", "items": { "$ref": "#/components/schemas/DeliveredEmail" - }, - "nullable": true + } } }, "additionalProperties": false @@ -16825,7 +19660,30 @@ }, "additionalProperties": false }, + "SearchSmsDeliveriesResponse": { + "required": [ + "metadata", + "smses" + ], + "type": "object", + "properties": { + "metadata": { + "$ref": "#/components/schemas/SearchResultMetadata" + }, + "smses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveredSms" + } + } + }, + "additionalProperties": false + }, "SearchSubscriptionHistoryResponse": { + "required": [ + "invoices", + "metadata" + ], "type": "object", "properties": { "metadata": { @@ -16835,8 +19693,7 @@ "type": "array", "items": { "$ref": "#/components/schemas/Invoice" - }, - "nullable": true + } } }, "additionalProperties": false @@ -16854,6 +19711,19 @@ }, "additionalProperties": false }, + "SendSmsRequest": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "message": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, "SortDirection": { "enum": [ "Ascending", @@ -16887,24 +19757,29 @@ "additionalProperties": false }, "StatusesTestingOnlyResponse": { + "required": [ + "message" + ], "type": "object", "properties": { "message": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false }, "StatusesTestingOnlySearchResponse": { + "required": [ + "messages", + "metadata" + ], "type": "object", "properties": { "messages": { "type": "array", "items": { "type": "string" - }, - "nullable": true + } }, "metadata": { "$ref": "#/components/schemas/SearchResultMetadata" @@ -16913,11 +19788,13 @@ "additionalProperties": false }, "StringMessageTestingOnlyResponse": { + "required": [ + "message" + ], "type": "object", "properties": { "message": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false @@ -17175,7 +20052,28 @@ }, "additionalProperties": false }, + "TwilioMessageStatus": { + "enum": [ + "Unknown", + "queued", + "sending", + "sent", + "failed", + "delivered", + "undelivered", + "receiving", + "received", + "accepted", + "scheduled", + "read", + "canceled" + ], + "type": "string" + }, "UnInviteMemberFromOrganizationResponse": { + "required": [ + "organization" + ], "type": "object", "properties": { "organization": { @@ -17257,6 +20155,9 @@ "additionalProperties": false }, "UpdateImageResponse": { + "required": [ + "image" + ], "type": "object", "properties": { "image": { @@ -17266,6 +20167,9 @@ "additionalProperties": false }, "UpdateUserResponse": { + "required": [ + "user" + ], "type": "object", "properties": { "user": { @@ -17275,6 +20179,9 @@ "additionalProperties": false }, "UploadImageResponse": { + "required": [ + "image" + ], "type": "object", "properties": { "image": { @@ -17416,6 +20323,9 @@ "additionalProperties": false }, "VerifyGuestInvitationResponse": { + "required": [ + "invitation" + ], "type": "object", "properties": { "invitation": { @@ -17423,6 +20333,29 @@ } }, "additionalProperties": false + }, + "VerifyPasswordMfaAuthenticatorForCallerRequest": { + "required": [ + "authenticatorType", + "confirmationCode", + "mfaToken" + ], + "type": "object", + "properties": { + "confirmationCode": { + "minLength": 1, + "type": "string" + }, + "mfaToken": { + "minLength": 1, + "type": "string" + }, + "oobCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false } }, "securitySchemes": { diff --git a/src/WebsiteHost/ClientApp/src/api/apiHost1/schemas.gen.ts b/src/WebsiteHost/ClientApp/src/api/apiHost1/schemas.gen.ts index 8c74fdb3..451ea2be 100644 --- a/src/WebsiteHost/ClientApp/src/api/apiHost1/schemas.gen.ts +++ b/src/WebsiteHost/ClientApp/src/api/apiHost1/schemas.gen.ts @@ -62,6 +62,36 @@ export const AssignRolesToOrganizationRequestSchema = { additionalProperties: false } as const; +export const AssociatePasswordMfaAuthenticatorForCallerRequestSchema = { + required: ["authenticatorType"], + type: "object", + properties: { + authenticatorType: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + }, + mfaToken: { + type: "string", + nullable: true + }, + phoneNumber: { + type: "string", + nullable: true + } + }, + additionalProperties: false +} as const; + +export const AssociatePasswordMfaAuthenticatorForCallerResponseSchema = { + required: ["authenticator"], + type: "object", + properties: { + authenticator: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticatorAssociation" + } + }, + additionalProperties: false +} as const; + export const AuditSchema = { type: "object", properties: { @@ -113,6 +143,7 @@ export const AuthenticatePasswordRequestSchema = { } as const; export const AuthenticateResponseSchema = { + required: ["tokens"], type: "object", properties: { tokens: { @@ -296,6 +327,29 @@ export const CarOwnerSchema = { additionalProperties: false } as const; +export const ChallengePasswordMfaAuthenticatorForCallerRequestSchema = { + required: ["authenticatorId", "mfaToken"], + type: "object", + properties: { + mfaToken: { + minLength: 1, + type: "string" + } + }, + additionalProperties: false +} as const; + +export const ChallengePasswordMfaAuthenticatorForCallerResponseSchema = { + required: ["challenge"], + type: "object", + properties: { + challenge: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticatorChallenge" + } + }, + additionalProperties: false +} as const; + export const ChangeDefaultOrganizationRequestSchema = { required: ["organizationId"], type: "object", @@ -320,7 +374,30 @@ export const ChangeOrganizationRequestSchema = { additionalProperties: false } as const; +export const ChangePasswordMfaForCallerRequestSchema = { + required: ["isEnabled"], + type: "object", + properties: { + isEnabled: { + type: "boolean" + } + }, + additionalProperties: false +} as const; + +export const ChangePasswordMfaResponseSchema = { + required: ["credential"], + type: "object", + properties: { + credential: { + $ref: "#/components/schemas/PasswordCredential" + } + }, + additionalProperties: false +} as const; + export const ChangeProfileAvatarResponseSchema = { + required: ["profile"], type: "object", properties: { profile: { @@ -456,6 +533,44 @@ export const ConfirmEmailDeliveryFailedRequestSchema = { additionalProperties: false } as const; +export const ConfirmPasswordMfaAuthenticatorForCallerRequestSchema = { + required: ["authenticatorType", "confirmationCode"], + type: "object", + properties: { + confirmationCode: { + minLength: 1, + type: "string" + }, + mfaToken: { + type: "string", + nullable: true + }, + oobCode: { + type: "string", + nullable: true + } + }, + additionalProperties: false +} as const; + +export const ConfirmPasswordMfaAuthenticatorForCallerResponseSchema = { + required: ["tokens"], + type: "object", + properties: { + authenticators: { + type: "array", + items: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticator" + }, + nullable: true + }, + tokens: { + $ref: "#/components/schemas/AuthenticateTokens" + } + }, + additionalProperties: false +} as const; + export const ConfirmRegistrationPersonPasswordRequestSchema = { required: ["token"], type: "object", @@ -473,6 +588,44 @@ export const ConfirmRegistrationPersonPasswordResponseSchema = { additionalProperties: false } as const; +export const ConfirmSmsDeliveredRequestSchema = { + required: ["receiptId"], + type: "object", + properties: { + deliveredAtUtc: { + type: "string", + format: "date-time", + nullable: true + }, + receiptId: { + minLength: 1, + type: "string" + } + }, + additionalProperties: false +} as const; + +export const ConfirmSmsDeliveryFailedRequestSchema = { + required: ["receiptId"], + type: "object", + properties: { + failedAtUtc: { + type: "string", + format: "date-time", + nullable: true + }, + reason: { + type: "string", + nullable: true + }, + receiptId: { + minLength: 1, + type: "string" + } + }, + additionalProperties: false +} as const; + export const CreateAPIKeyForCallerRequestSchema = { type: "object", properties: { @@ -486,11 +639,11 @@ export const CreateAPIKeyForCallerRequestSchema = { } as const; export const CreateAPIKeyResponseSchema = { + required: ["apiKey"], type: "object", properties: { apiKey: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false @@ -538,11 +691,12 @@ export const CustomDtoSchema = { } as const; export const CustomEnumSchema = { - enum: ["One", "TwentyOne", "OneHundredAndOne"], + enum: ["None", "One", "TwentyOne", "OneHundredAndOne"], type: "string" } as const; export const DeleteProfileAvatarResponseSchema = { + required: ["profile"], type: "object", properties: { profile: { @@ -565,6 +719,7 @@ export const DeliverAuditRequestSchema = { } as const; export const DeliverMessageResponseSchema = { + required: ["isSent"], type: "object", properties: { isSent: { @@ -633,6 +788,13 @@ export const DeliveredEmailSchema = { type: "string", nullable: true }, + tags: { + type: "array", + items: { + type: "string" + }, + nullable: true + }, toDisplayName: { type: "string", nullable: true @@ -649,6 +811,68 @@ export const DeliveredEmailSchema = { additionalProperties: false } as const; +export const DeliveredSmsSchema = { + type: "object", + properties: { + attempts: { + type: "array", + items: { + type: "string", + format: "date-time" + }, + nullable: true + }, + body: { + type: "string", + nullable: true + }, + deliveredAt: { + type: "string", + format: "date-time", + nullable: true + }, + failedDeliveryAt: { + type: "string", + format: "date-time", + nullable: true + }, + failedDeliveryReason: { + type: "string", + nullable: true + }, + isDelivered: { + type: "boolean" + }, + isDeliveryFailed: { + type: "boolean" + }, + isSent: { + type: "boolean" + }, + sentAt: { + type: "string", + format: "date-time", + nullable: true + }, + tags: { + type: "array", + items: { + type: "string" + }, + nullable: true + }, + toPhoneNumber: { + type: "string", + nullable: true + }, + id: { + type: "string", + nullable: true + } + }, + additionalProperties: false +} as const; + export const DestroyAllRepositoriesRequestSchema = { type: "object", additionalProperties: false @@ -709,6 +933,11 @@ export const DrainAllProvisioningsRequestSchema = { additionalProperties: false } as const; +export const DrainAllSmsesRequestSchema = { + type: "object", + additionalProperties: false +} as const; + export const DrainAllUsagesRequestSchema = { type: "object", additionalProperties: false @@ -810,6 +1039,7 @@ export const EndUserWithMembershipsSchema = { } as const; export const ExportSubscriptionsToMigrateResponseSchema = { + required: ["metadata", "subscriptions"], type: "object", properties: { metadata: { @@ -819,8 +1049,7 @@ export const ExportSubscriptionsToMigrateResponseSchema = { type: "array", items: { $ref: "#/components/schemas/SubscriptionToMigrate" - }, - nullable: true + } } }, additionalProperties: false @@ -888,6 +1117,7 @@ export const FormatsTestingOnlyRequestSchema = { } as const; export const FormatsTestingOnlyResponseSchema = { + required: ["custom", "string"], type: "object", properties: { custom: { @@ -907,8 +1137,7 @@ export const FormatsTestingOnlyResponseSchema = { nullable: true }, string: { - type: "string", - nullable: true + type: "string" }, time: { type: "string", @@ -920,31 +1149,32 @@ export const FormatsTestingOnlyResponseSchema = { } as const; export const GetAllFeatureFlagsResponseSchema = { + required: ["flags"], type: "object", properties: { flags: { type: "array", items: { $ref: "#/components/schemas/FeatureFlag" - }, - nullable: true + } } }, additionalProperties: false } as const; export const GetCallerTestingOnlyResponseSchema = { + required: ["callerId"], type: "object", properties: { callerId: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false } as const; export const GetCarResponseSchema = { + required: ["car"], type: "object", properties: { car: { @@ -955,6 +1185,7 @@ export const GetCarResponseSchema = { } as const; export const GetFeatureFlagResponseSchema = { + required: ["flag"], type: "object", properties: { flag: { @@ -964,7 +1195,19 @@ export const GetFeatureFlagResponseSchema = { additionalProperties: false } as const; +export const GetIdentityResponseSchema = { + required: ["identity"], + type: "object", + properties: { + identity: { + $ref: "#/components/schemas/Identity" + } + }, + additionalProperties: false +} as const; + export const GetImageResponseSchema = { + required: ["image"], type: "object", properties: { image: { @@ -975,6 +1218,7 @@ export const GetImageResponseSchema = { } as const; export const GetOrganizationResponseSchema = { + required: ["organization"], type: "object", properties: { organization: { @@ -985,6 +1229,7 @@ export const GetOrganizationResponseSchema = { } as const; export const GetOrganizationSettingsResponseSchema = { + required: ["organization", "settings"], type: "object", properties: { organization: { @@ -994,14 +1239,14 @@ export const GetOrganizationSettingsResponseSchema = { type: "object", additionalProperties: { type: "string" - }, - nullable: true + } } }, additionalProperties: false } as const; export const GetProfileForCallerResponseSchema = { + required: ["profile"], type: "object", properties: { profile: { @@ -1012,6 +1257,7 @@ export const GetProfileForCallerResponseSchema = { } as const; export const GetProfileResponseSchema = { + required: ["profile"], type: "object", properties: { profile: { @@ -1022,17 +1268,18 @@ export const GetProfileResponseSchema = { } as const; export const GetRegistrationPersonConfirmationResponseSchema = { + required: ["token"], type: "object", properties: { token: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false } as const; export const GetSubscriptionResponseSchema = { + required: ["subscription"], type: "object", properties: { subscription: { @@ -1043,6 +1290,7 @@ export const GetSubscriptionResponseSchema = { } as const; export const GetUserResponseSchema = { + required: ["user"], type: "object", properties: { user: { @@ -1053,13 +1301,29 @@ export const GetUserResponseSchema = { } as const; export const HealthCheckResponseSchema = { + required: ["name", "status"], type: "object", properties: { name: { - type: "string", - nullable: true + type: "string" }, status: { + type: "string" + } + }, + additionalProperties: false +} as const; + +export const IdentitySchema = { + type: "object", + properties: { + isMfaEnabled: { + type: "boolean" + }, + hasCredentials: { + type: "boolean" + }, + id: { type: "string", nullable: true } @@ -1138,6 +1402,7 @@ export const InviteGuestRequestSchema = { } as const; export const InviteGuestResponseSchema = { + required: ["invitation"], type: "object", properties: { invitation: { @@ -1164,6 +1429,7 @@ export const InviteMemberToOrganizationRequestSchema = { } as const; export const InviteMemberToOrganizationResponseSchema = { + required: ["organization"], type: "object", properties: { organization: { @@ -1330,6 +1596,7 @@ export const InvoiceSummarySchema = { } as const; export const ListMembersForOrganizationResponseSchema = { + required: ["members", "metadata"], type: "object", properties: { metadata: { @@ -1339,14 +1606,14 @@ export const ListMembersForOrganizationResponseSchema = { type: "array", items: { $ref: "#/components/schemas/OrganizationMember" - }, - nullable: true + } } }, additionalProperties: false } as const; export const ListMembershipsForCallerResponseSchema = { + required: ["memberships", "metadata"], type: "object", properties: { metadata: { @@ -1356,14 +1623,28 @@ export const ListMembershipsForCallerResponseSchema = { type: "array", items: { $ref: "#/components/schemas/Membership" - }, - nullable: true + } + } + }, + additionalProperties: false +} as const; + +export const ListPasswordMfaAuthenticatorsForCallerResponseSchema = { + required: ["authenticators"], + type: "object", + properties: { + authenticators: { + type: "array", + items: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticator" + } } }, additionalProperties: false } as const; export const ListPricingPlansResponseSchema = { + required: ["plans"], type: "object", properties: { plans: { @@ -1539,6 +1820,7 @@ export const MakeBookingRequestSchema = { } as const; export const MakeBookingResponseSchema = { + required: ["booking"], type: "object", properties: { booking: { @@ -1608,6 +1890,7 @@ export const MigrateSubscriptionRequestSchema = { } as const; export const MigrateSubscriptionResponseSchema = { + required: ["subscription"], type: "object", properties: { subscription: { @@ -1677,6 +1960,38 @@ export const OpenApiPutTestingOnlyRequestSchema = { additionalProperties: false } as const; +export const OpenApiTestingOnlyResponseSchema = { + required: ["anAnnotatedRequiredField", "anInitializedField", "aRequiredField", "aValueTypeField", "message"], + type: "object", + properties: { + anAnnotatedRequiredField: { + minLength: 1, + type: "string" + }, + anInitializedField: { + type: "string" + }, + aNullableField: { + type: "string", + nullable: true + }, + aNullableValueTypeField: { + type: "boolean", + nullable: true + }, + aRequiredField: { + type: "string" + }, + aValueTypeField: { + type: "boolean" + }, + message: { + type: "string" + } + }, + additionalProperties: false +} as const; + export const OrganizationSchema = { type: "object", properties: { @@ -1759,6 +2074,9 @@ export const OrganizationOwnershipSchema = { export const PasswordCredentialSchema = { type: "object", properties: { + isMfaEnabled: { + type: "boolean" + }, user: { $ref: "#/components/schemas/EndUser" }, @@ -1770,6 +2088,71 @@ export const PasswordCredentialSchema = { additionalProperties: false } as const; +export const PasswordCredentialMfaAuthenticatorSchema = { + type: "object", + properties: { + isActive: { + type: "boolean" + }, + type: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + }, + id: { + type: "string", + nullable: true + } + }, + additionalProperties: false +} as const; + +export const PasswordCredentialMfaAuthenticatorAssociationSchema = { + type: "object", + properties: { + barCodeUri: { + type: "string", + nullable: true + }, + oobCode: { + type: "string", + nullable: true + }, + recoveryCodes: { + type: "array", + items: { + type: "string" + }, + nullable: true + }, + secret: { + type: "string", + nullable: true + }, + type: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + } + }, + additionalProperties: false +} as const; + +export const PasswordCredentialMfaAuthenticatorChallengeSchema = { + type: "object", + properties: { + oobCode: { + type: "string", + nullable: true + }, + type: { + $ref: "#/components/schemas/PasswordCredentialMfaAuthenticatorType" + } + }, + additionalProperties: false +} as const; + +export const PasswordCredentialMfaAuthenticatorTypeSchema = { + enum: ["None", "RecoveryCodes", "OobSms", "OobEmail", "TotpAuthenticator"], + type: "string" +} as const; + export const PaymentMethodStatusSchema = { enum: ["Invalid", "Valid"], type: "string" @@ -2083,6 +2466,7 @@ export const RefreshTokenRequestSchema = { } as const; export const RefreshTokenResponseSchema = { + required: ["tokens"], type: "object", properties: { tokens: { @@ -2152,6 +2536,7 @@ export const RegisterMachineRequestSchema = { } as const; export const RegisterMachineResponseSchema = { + required: ["machine"], type: "object", properties: { machine: { @@ -2201,6 +2586,7 @@ export const RegisterPersonPasswordRequestSchema = { } as const; export const RegisterPersonPasswordResponseSchema = { + required: ["credential"], type: "object", properties: { credential: { @@ -2222,6 +2608,17 @@ export const ResendPasswordResetRequestSchema = { additionalProperties: false } as const; +export const ResetPasswordMfaRequestSchema = { + type: "object", + properties: { + userId: { + type: "string", + nullable: true + } + }, + additionalProperties: false +} as const; + export const ScheduleMaintenanceCarRequestSchema = { required: ["id"], type: "object", @@ -2245,6 +2642,7 @@ export const ScheduleMaintenanceCarRequestSchema = { } as const; export const SearchAllAPIKeysResponseSchema = { + required: ["keys", "metadata"], type: "object", properties: { metadata: { @@ -2254,14 +2652,14 @@ export const SearchAllAPIKeysResponseSchema = { type: "array", items: { $ref: "#/components/schemas/APIKey" - }, - nullable: true + } } }, additionalProperties: false } as const; export const SearchAllAuditsResponseSchema = { + required: ["audits", "metadata"], type: "object", properties: { metadata: { @@ -2271,14 +2669,14 @@ export const SearchAllAuditsResponseSchema = { type: "array", items: { $ref: "#/components/schemas/Audit" - }, - nullable: true + } } }, additionalProperties: false } as const; export const SearchAllBookingsResponseSchema = { + required: ["bookings", "metadata"], type: "object", properties: { metadata: { @@ -2288,14 +2686,14 @@ export const SearchAllBookingsResponseSchema = { type: "array", items: { $ref: "#/components/schemas/Booking" - }, - nullable: true + } } }, additionalProperties: false } as const; export const SearchAllCarUnavailabilitiesResponseSchema = { + required: ["metadata", "unavailabilities"], type: "object", properties: { metadata: { @@ -2305,14 +2703,14 @@ export const SearchAllCarUnavailabilitiesResponseSchema = { type: "array", items: { $ref: "#/components/schemas/Unavailability" - }, - nullable: true + } } }, additionalProperties: false } as const; export const SearchAllCarsResponseSchema = { + required: ["cars", "metadata"], type: "object", properties: { metadata: { @@ -2322,14 +2720,14 @@ export const SearchAllCarsResponseSchema = { type: "array", items: { $ref: "#/components/schemas/Car" - }, - nullable: true + } } }, additionalProperties: false } as const; export const SearchAllDomainEventsResponseSchema = { + required: ["events", "metadata"], type: "object", properties: { metadata: { @@ -2339,14 +2737,14 @@ export const SearchAllDomainEventsResponseSchema = { type: "array", items: { $ref: "#/components/schemas/DomainEvent" - }, - nullable: true + } } }, additionalProperties: false } as const; export const SearchEmailDeliveriesResponseSchema = { + required: ["emails", "metadata"], type: "object", properties: { metadata: { @@ -2356,8 +2754,7 @@ export const SearchEmailDeliveriesResponseSchema = { type: "array", items: { $ref: "#/components/schemas/DeliveredEmail" - }, - nullable: true + } } }, additionalProperties: false @@ -2388,7 +2785,25 @@ export const SearchResultMetadataSchema = { additionalProperties: false } as const; +export const SearchSmsDeliveriesResponseSchema = { + required: ["metadata", "smses"], + type: "object", + properties: { + metadata: { + $ref: "#/components/schemas/SearchResultMetadata" + }, + smses: { + type: "array", + items: { + $ref: "#/components/schemas/DeliveredSms" + } + } + }, + additionalProperties: false +} as const; + export const SearchSubscriptionHistoryResponseSchema = { + required: ["invoices", "metadata"], type: "object", properties: { metadata: { @@ -2398,8 +2813,7 @@ export const SearchSubscriptionHistoryResponseSchema = { type: "array", items: { $ref: "#/components/schemas/Invoice" - }, - nullable: true + } } }, additionalProperties: false @@ -2417,6 +2831,18 @@ export const SendEmailRequestSchema = { additionalProperties: false } as const; +export const SendSmsRequestSchema = { + required: ["message"], + type: "object", + properties: { + message: { + minLength: 1, + type: "string" + } + }, + additionalProperties: false +} as const; + export const SortDirectionSchema = { enum: ["Ascending", "Descending"], type: "string" @@ -2452,25 +2878,25 @@ export const StatusesPutPatchTestingOnlyRequestSchema = { } as const; export const StatusesTestingOnlyResponseSchema = { + required: ["message"], type: "object", properties: { message: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false } as const; export const StatusesTestingOnlySearchResponseSchema = { + required: ["messages", "metadata"], type: "object", properties: { messages: { type: "array", items: { type: "string" - }, - nullable: true + } }, metadata: { $ref: "#/components/schemas/SearchResultMetadata" @@ -2480,11 +2906,11 @@ export const StatusesTestingOnlySearchResponseSchema = { } as const; export const StringMessageTestingOnlyResponseSchema = { + required: ["message"], type: "object", properties: { message: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false @@ -2734,7 +3160,27 @@ export const TransferSubscriptionRequestSchema = { additionalProperties: false } as const; +export const TwilioMessageStatusSchema = { + enum: [ + "Unknown", + "queued", + "sending", + "sent", + "failed", + "delivered", + "undelivered", + "receiving", + "received", + "accepted", + "scheduled", + "read", + "canceled" + ], + type: "string" +} as const; + export const UnInviteMemberFromOrganizationResponseSchema = { + required: ["organization"], type: "object", properties: { organization: { @@ -2814,6 +3260,7 @@ export const UpdateImageRequestSchema = { } as const; export const UpdateImageResponseSchema = { + required: ["image"], type: "object", properties: { image: { @@ -2824,6 +3271,7 @@ export const UpdateImageResponseSchema = { } as const; export const UpdateUserResponseSchema = { + required: ["user"], type: "object", properties: { user: { @@ -2834,6 +3282,7 @@ export const UpdateUserResponseSchema = { } as const; export const UploadImageResponseSchema = { + required: ["image"], type: "object", properties: { image: { @@ -2974,6 +3423,7 @@ export const ValidationsValidatedPostTestingOnlyRequestSchema = { } as const; export const VerifyGuestInvitationResponseSchema = { + required: ["invitation"], type: "object", properties: { invitation: { @@ -2982,3 +3432,23 @@ export const VerifyGuestInvitationResponseSchema = { }, additionalProperties: false } as const; + +export const VerifyPasswordMfaAuthenticatorForCallerRequestSchema = { + required: ["authenticatorType", "confirmationCode", "mfaToken"], + type: "object", + properties: { + confirmationCode: { + minLength: 1, + type: "string" + }, + mfaToken: { + minLength: 1, + type: "string" + }, + oobCode: { + type: "string", + nullable: true + } + }, + additionalProperties: false +} as const; diff --git a/src/WebsiteHost/ClientApp/src/api/apiHost1/services.gen.ts b/src/WebsiteHost/ClientApp/src/api/apiHost1/services.gen.ts index 72b4d665..4aa0ab28 100644 --- a/src/WebsiteHost/ClientApp/src/api/apiHost1/services.gen.ts +++ b/src/WebsiteHost/ClientApp/src/api/apiHost1/services.gen.ts @@ -1,6 +1,12 @@ // This file is auto-generated by @hey-api/openapi-ts -import { createClient, createConfig, formDataBodySerializer, type Options } from "@hey-api/client-axios"; +import { + createClient, + createConfig, + formDataBodySerializer, + type Options, + urlSearchParamsBodySerializer +} from "@hey-api/client-axios"; import type { AssignPlatformRolesData, AssignPlatformRolesError, @@ -11,6 +17,9 @@ import type { AssignRolesToOrganizationPutData, AssignRolesToOrganizationPutError, AssignRolesToOrganizationPutResponse, + AssociatePasswordMfaAuthenticatorForCallerData, + AssociatePasswordMfaAuthenticatorForCallerError, + AssociatePasswordMfaAuthenticatorForCallerResponse2, AuthenticatePasswordData, AuthenticatePasswordError, AuthenticatePasswordResponse, @@ -29,6 +38,12 @@ import type { CancelSubscriptionData, CancelSubscriptionError, CancelSubscriptionResponse, + ChallengePasswordMfaAuthenticatorForCallerPatchData, + ChallengePasswordMfaAuthenticatorForCallerPatchError, + ChallengePasswordMfaAuthenticatorForCallerPatchResponse, + ChallengePasswordMfaAuthenticatorForCallerPutData, + ChallengePasswordMfaAuthenticatorForCallerPutError, + ChallengePasswordMfaAuthenticatorForCallerPutResponse, ChangeDefaultOrganizationPatchData, ChangeDefaultOrganizationPatchError, ChangeDefaultOrganizationPatchResponse, @@ -47,6 +62,12 @@ import type { ChangeOrganizationPutData, ChangeOrganizationPutError, ChangeOrganizationPutResponse, + ChangePasswordMfaForCallerPatchData, + ChangePasswordMfaForCallerPatchError, + ChangePasswordMfaForCallerPatchResponse, + ChangePasswordMfaForCallerPutData, + ChangePasswordMfaForCallerPutError, + ChangePasswordMfaForCallerPutResponse, ChangeProfileAvatarPatchData, ChangeProfileAvatarPatchError, ChangeProfileAvatarPatchResponse, @@ -80,9 +101,21 @@ import type { ConfirmEmailDeliveryFailedData, ConfirmEmailDeliveryFailedError, ConfirmEmailDeliveryFailedResponse, + ConfirmPasswordMfaAuthenticatorForCallerPatchData, + ConfirmPasswordMfaAuthenticatorForCallerPatchError, + ConfirmPasswordMfaAuthenticatorForCallerPatchResponse, + ConfirmPasswordMfaAuthenticatorForCallerPutData, + ConfirmPasswordMfaAuthenticatorForCallerPutError, + ConfirmPasswordMfaAuthenticatorForCallerPutResponse, ConfirmRegistrationPersonPasswordData, ConfirmRegistrationPersonPasswordError, ConfirmRegistrationPersonPasswordResponse2, + ConfirmSmsDeliveredData, + ConfirmSmsDeliveredError, + ConfirmSmsDeliveredResponse, + ConfirmSmsDeliveryFailedData, + ConfirmSmsDeliveryFailedError, + ConfirmSmsDeliveryFailedResponse, ContentNegotiationsTestingOnlyData, ContentNegotiationsTestingOnlyError, ContentNegotiationsTestingOnlyResponse, @@ -119,6 +152,9 @@ import type { DestroyAllRepositoriesData, DestroyAllRepositoriesError, DestroyAllRepositoriesResponse, + DisassociatePasswordMfaAuthenticatorForCallerData, + DisassociatePasswordMfaAuthenticatorForCallerError, + DisassociatePasswordMfaAuthenticatorForCallerResponse, DownloadImageData, DownloadImageError, DownloadImageResponse, @@ -134,6 +170,9 @@ import type { DrainAllProvisioningsData, DrainAllProvisioningsError, DrainAllProvisioningsResponse, + DrainAllSmsesData, + DrainAllSmsesError, + DrainAllSmsesResponse, DrainAllUsagesData, DrainAllUsagesError, DrainAllUsagesResponse, @@ -165,6 +204,8 @@ import type { GetFeatureFlagForCallerError, GetFeatureFlagForCallerResponse, GetFeatureFlagResponse2, + GetIdentityForCallerError, + GetIdentityForCallerResponse, GetImageData, GetImageError, GetImageResponse2, @@ -187,6 +228,9 @@ import type { GetUserData, GetUserError, GetUserResponse2, + GetWithSimpleArrayTestingOnlyData, + GetWithSimpleArrayTestingOnlyError, + GetWithSimpleArrayTestingOnlyResponse, HealthCheckError, HealthCheckResponse2, InitiatePasswordResetData, @@ -204,6 +248,9 @@ import type { ListMembershipsForCallerData, ListMembershipsForCallerError, ListMembershipsForCallerResponse2, + ListPasswordMfaAuthenticatorsForCallerData, + ListPasswordMfaAuthenticatorsForCallerError, + ListPasswordMfaAuthenticatorsForCallerResponse2, ListPricingPlansError, ListPricingPlansResponse2, MailgunNotifyWebhookEventData, @@ -227,9 +274,12 @@ import type { OpenApiGetTestingOnlyData, OpenApiGetTestingOnlyError, OpenApiGetTestingOnlyResponse, - OpenApiPostMultiPartFormTestingOnlyData, - OpenApiPostMultiPartFormTestingOnlyError, - OpenApiPostMultiPartFormTestingOnlyResponse, + OpenApiPostFormUrlEncodedTestingOnlyData, + OpenApiPostFormUrlEncodedTestingOnlyError, + OpenApiPostFormUrlEncodedTestingOnlyResponse, + OpenApiPostMultiPartFormDataTestingOnlyData, + OpenApiPostMultiPartFormDataTestingOnlyError, + OpenApiPostMultiPartFormDataTestingOnlyResponse, OpenApiPostTestingOnlyData, OpenApiPostTestingOnlyError, OpenApiPostTestingOnlyResponse, @@ -277,6 +327,12 @@ import type { ResendPasswordResetData, ResendPasswordResetError, ResendPasswordResetResponse, + ResetPasswordMfaPatchData, + ResetPasswordMfaPatchError, + ResetPasswordMfaPatchResponse, + ResetPasswordMfaPutData, + ResetPasswordMfaPutError, + ResetPasswordMfaPutResponse, RevokeRefreshTokenData, RevokeRefreshTokenError, RevokeRefreshTokenResponse, @@ -310,12 +366,18 @@ import type { SearchEmailDeliveriesData, SearchEmailDeliveriesError, SearchEmailDeliveriesResponse2, + SearchSmsDeliveriesData, + SearchSmsDeliveriesError, + SearchSmsDeliveriesResponse2, SearchSubscriptionHistoryData, SearchSubscriptionHistoryError, SearchSubscriptionHistoryResponse2, SendEmailData, SendEmailError, SendEmailResponse, + SendSmsData, + SendSmsError, + SendSmsResponse, StatusesDeleteTestingOnlyError, StatusesDeleteTestingOnlyResponse, StatusesDeleteWithResponseTestingOnlyError, @@ -348,6 +410,9 @@ import type { TransferSubscriptionPutData, TransferSubscriptionPutError, TransferSubscriptionPutResponse, + TwilioNotifyWebhookEventData, + TwilioNotifyWebhookEventError, + TwilioNotifyWebhookEventResponse, UnassignPlatformRolesPatchData, UnassignPlatformRolesPatchError, UnassignPlatformRolesPatchResponse, @@ -384,6 +449,12 @@ import type { VerifyGuestInvitationData, VerifyGuestInvitationError, VerifyGuestInvitationResponse2, + VerifyPasswordMfaAuthenticatorForCallerPatchData, + VerifyPasswordMfaAuthenticatorForCallerPatchError, + VerifyPasswordMfaAuthenticatorForCallerPatchResponse, + VerifyPasswordMfaAuthenticatorForCallerPutData, + VerifyPasswordMfaAuthenticatorForCallerPutError, + VerifyPasswordMfaAuthenticatorForCallerPutResponse, VerifyPasswordResetData, VerifyPasswordResetError, VerifyPasswordResetResponse @@ -439,9 +510,7 @@ export const deliverAudit = (options?: Opt * Drains all the pending audit messages * (request type: DrainAllAuditsRequest) */ -export const drainAllAudits = ( - options?: Options -) => +export const drainAllAudits = (options?: Options) => (options?.client ?? client).post({ ...options, url: "/audits/drain" @@ -451,9 +520,7 @@ export const drainAllAudits = ( * Lists all available audits * (request type: SearchAllAuditsRequest) */ -export const searchAllAudits = ( - options?: Options -) => +export const searchAllAudits = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/audits" @@ -525,9 +592,7 @@ export const migrateSubscriptionPatch = ( * Cancels a booking * (request type: CancelBookingRequest) */ -export const cancelBooking = ( - options: Options -) => +export const cancelBooking = (options: Options) => (options?.client ?? client).delete({ ...options, url: "/bookings/{Id}" @@ -589,9 +654,7 @@ export const registerCar = (options?: Opti * Lists all the cars * (request type: SearchAllCarsRequest) */ -export const searchAllCars = ( - options?: Options -) => +export const searchAllCars = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/cars" @@ -741,16 +804,14 @@ export const confirmEmailDeliveryFailed = * Drains all the pending email messages * (request type: DrainAllEmailsRequest) */ -export const drainAllEmails = ( - options?: Options -) => +export const drainAllEmails = (options?: Options) => (options?.client ?? client).post({ ...options, url: "/emails/drain" }); /** - * Lists all email deliveries since the specified date + * Lists all email deliveries since the specified date, for the specified tags * (request type: SearchEmailDeliveriesRequest) */ export const searchEmailDeliveries = ( @@ -821,9 +882,7 @@ export const getUser = (options: Options( - options: Options -) => +export const getFeatureFlag = (options: Options) => (options?.client ?? client).get({ ...options, url: "/flags/{UserId}/{Name}" @@ -861,6 +920,16 @@ export const healthCheck = (options?: Opti url: "/health" }); +/** + * Fetches identity details of the user + * (request type: GetIdentityForCallerRequest) + */ +export const getIdentityForCaller = (options?: Options) => + (options?.client ?? client).get({ + ...options, + url: "/users/me" + }); + /** * Deletes the image * (request type: DeleteImageRequest) @@ -885,9 +954,7 @@ export const getImage = (options: Options< * Changes the image details * (request type: UpdateImageRequest) */ -export const updateImagePut = ( - options: Options -) => +export const updateImagePut = (options: Options) => (options?.client ?? client).put({ ...options, url: "/images/{Id}" @@ -897,9 +964,7 @@ export const updateImagePut = ( * Changes the image details * (request type: UpdateImageRequest) */ -export const updateImagePatch = ( - options: Options -) => +export const updateImagePatch = (options: Options) => (options?.client ?? client).patch({ ...options, url: "/images/{Id}" @@ -909,9 +974,7 @@ export const updateImagePatch = ( * Downloads the raw image * (request type: DownloadImageRequest) */ -export const downloadImage = ( - options: Options -) => +export const downloadImage = (options: Options) => (options?.client ?? client).get({ ...options, url: "/images/{Id}/download" @@ -970,9 +1033,7 @@ export const verifyGuestInvitation = ( * Register a new machine user on the platform * (request type: RegisterMachineRequest) */ -export const registerMachine = ( - options?: Options -) => +export const registerMachine = (options?: Options) => (options?.client ?? client).post({ ...options, url: "/machines/register" @@ -1034,6 +1095,206 @@ export const listMembershipsForCaller = ( url: "/memberships/me" }); +/** + * Associates another MFA authentication factor to the user. Depending on the specific authenticator, this can send an SMS or email to the user containing a secret code. + * (request type: AssociatePasswordMfaAuthenticatorForCallerRequest) + */ +export const associatePasswordMfaAuthenticatorForCaller = ( + options?: Options +) => + (options?.client ?? client).post< + AssociatePasswordMfaAuthenticatorForCallerResponse2, + AssociatePasswordMfaAuthenticatorForCallerError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators" + }); + +/** + * Fetches the MFA authenticators for the user + * (request type: ListPasswordMfaAuthenticatorsForCallerRequest) + */ +export const listPasswordMfaAuthenticatorsForCaller = ( + options?: Options +) => + (options?.client ?? client).get< + ListPasswordMfaAuthenticatorsForCallerResponse2, + ListPasswordMfaAuthenticatorsForCallerError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators" + }); + +/** + * Challenges an MFA authenticator for the user. Depending on the specific authenticator, this can send an SMS or email to the user containing a secret code. + * (request type: ChallengePasswordMfaAuthenticatorForCallerRequest) + */ +export const challengePasswordMfaAuthenticatorForCallerPut = ( + options: Options +) => + (options?.client ?? client).put< + ChallengePasswordMfaAuthenticatorForCallerPutResponse, + ChallengePasswordMfaAuthenticatorForCallerPutError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{AuthenticatorId}/challenge" + }); + +/** + * Challenges an MFA authenticator for the user. Depending on the specific authenticator, this can send an SMS or email to the user containing a secret code. + * (request type: ChallengePasswordMfaAuthenticatorForCallerRequest) + */ +export const challengePasswordMfaAuthenticatorForCallerPatch = ( + options: Options +) => + (options?.client ?? client).patch< + ChallengePasswordMfaAuthenticatorForCallerPatchResponse, + ChallengePasswordMfaAuthenticatorForCallerPatchError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{AuthenticatorId}/challenge" + }); + +/** + * Changes whether the user is MFA enabled or not + * (request type: ChangePasswordMfaForCallerRequest) + */ +export const changePasswordMfaForCallerPut = ( + options?: Options +) => + (options?.client ?? client).put< + ChangePasswordMfaForCallerPutResponse, + ChangePasswordMfaForCallerPutError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa" + }); + +/** + * Changes whether the user is MFA enabled or not + * (request type: ChangePasswordMfaForCallerRequest) + */ +export const changePasswordMfaForCallerPatch = ( + options?: Options +) => + (options?.client ?? client).patch< + ChangePasswordMfaForCallerPatchResponse, + ChangePasswordMfaForCallerPatchError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa" + }); + +/** + * Confirms the association of an MFA authenticator for the user, and authenticates the user. + * (request type: ConfirmPasswordMfaAuthenticatorForCallerRequest) + */ +export const confirmPasswordMfaAuthenticatorForCallerPut = ( + options: Options +) => + (options?.client ?? client).put< + ConfirmPasswordMfaAuthenticatorForCallerPutResponse, + ConfirmPasswordMfaAuthenticatorForCallerPutError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{AuthenticatorType}/confirm" + }); + +/** + * Confirms the association of an MFA authenticator for the user, and authenticates the user. + * (request type: ConfirmPasswordMfaAuthenticatorForCallerRequest) + */ +export const confirmPasswordMfaAuthenticatorForCallerPatch = ( + options: Options +) => + (options?.client ?? client).patch< + ConfirmPasswordMfaAuthenticatorForCallerPatchResponse, + ConfirmPasswordMfaAuthenticatorForCallerPatchError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{AuthenticatorType}/confirm" + }); + +/** + * Disassociates an associated MFA authenticator from the user + * (request type: DisassociatePasswordMfaAuthenticatorForCallerRequest) + */ +export const disassociatePasswordMfaAuthenticatorForCaller = ( + options: Options +) => + (options?.client ?? client).delete< + DisassociatePasswordMfaAuthenticatorForCallerResponse, + DisassociatePasswordMfaAuthenticatorForCallerError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{Id}" + }); + +/** + * Resets the user MFA status back to the default for all users + * (request type: ResetPasswordMfaRequest) + */ +export const resetPasswordMfaPut = ( + options?: Options +) => + (options?.client ?? client).put({ + ...options, + url: "/passwords/mfa/reset" + }); + +/** + * Resets the user MFA status back to the default for all users + * (request type: ResetPasswordMfaRequest) + */ +export const resetPasswordMfaPatch = ( + options?: Options +) => + (options?.client ?? client).patch({ + ...options, + url: "/passwords/mfa/reset" + }); + +/** + * Verifies an MFA authenticator for the user, and authenticates the user. + * (request type: VerifyPasswordMfaAuthenticatorForCallerRequest) + */ +export const verifyPasswordMfaAuthenticatorForCallerPut = ( + options: Options +) => + (options?.client ?? client).put< + VerifyPasswordMfaAuthenticatorForCallerPutResponse, + VerifyPasswordMfaAuthenticatorForCallerPutError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{AuthenticatorType}/verify" + }); + +/** + * Verifies an MFA authenticator for the user, and authenticates the user. + * (request type: VerifyPasswordMfaAuthenticatorForCallerRequest) + */ +export const verifyPasswordMfaAuthenticatorForCallerPatch = ( + options: Options +) => + (options?.client ?? client).patch< + VerifyPasswordMfaAuthenticatorForCallerPatchResponse, + VerifyPasswordMfaAuthenticatorForCallerPatchError, + ThrowOnError + >({ + ...options, + url: "/passwords/mfa/authenticators/{AuthenticatorType}/verify" + }); + /** * Assigns a list of roles to a member of an organization * (request type: AssignRolesToOrganizationRequest) @@ -1156,9 +1417,7 @@ export const deleteOrganization = ( * Fetches the profile of the organization * (request type: GetOrganizationRequest) */ -export const getOrganization = ( - options: Options -) => +export const getOrganization = (options: Options) => (options?.client ?? client).get({ ...options, url: "/organizations/{Id}" @@ -1402,9 +1661,7 @@ export const notifyProvisioning = ( * Measures an event in the product * (request type: RecordMeasureRequest) */ -export const recordMeasure = ( - options?: Options -) => +export const recordMeasure = (options?: Options) => (options?.client ?? client).post({ ...options, url: "/record/measure" @@ -1432,6 +1689,64 @@ export const authenticateSingleSignOn = ( url: "/sso/auth" }); +/** + * Confirms the delivery of a sent SMS message + * (request type: ConfirmSmsDeliveredRequest) + */ +export const confirmSmsDelivered = ( + options?: Options +) => + (options?.client ?? client).post({ + ...options, + url: "/smses/delivered" + }); + +/** + * Confirms the failed delivery of a sent SMS message + * (request type: ConfirmSmsDeliveryFailedRequest) + */ +export const confirmSmsDeliveryFailed = ( + options?: Options +) => + (options?.client ?? client).post({ + ...options, + url: "/smses/failed" + }); + +/** + * Drains all the pending SMS messages + * (request type: DrainAllSmsesRequest) + */ +export const drainAllSmses = ( + options?: Options +) => + (options?.client ?? client).post({ + ...options, + url: "/smses/drain" + }); + +/** + * Lists all SMS deliveries since the specified date, for the specified tags + * (request type: SearchSmsDeliveriesRequest) + */ +export const searchSmsDeliveries = ( + options?: Options +) => + (options?.client ?? client).get({ + ...options, + url: "/smses" + }); + +/** + * Sends an SMS message for delivery + * (request type: SendSmsRequest) + */ +export const sendSms = (options?: Options) => + (options?.client ?? client).post({ + ...options, + url: "/smses/send" + }); + /** * Cancels the billing subscription for the organization * (request type: CancelSubscriptionRequest) @@ -1448,9 +1763,7 @@ export const cancelSubscription = ( * Fetches the billing subscription for the organization * (request type: GetSubscriptionRequest) */ -export const getSubscription = ( - options: Options -) => +export const getSubscription = (options: Options) => (options?.client ?? client).get({ ...options, url: "/subscriptions/{Id}" @@ -1536,9 +1849,7 @@ export const transferSubscriptionPatch = ( * Tests access with HMAC signature authentication * (request type: GetCallerWithHMACTestingOnlyRequest) */ -export const getCallerWithHmacTestingOnly = ( - options?: Options -) => +export const getCallerWithHmacTestingOnly = (options?: Options) => (options?.client ?? client).get< GetCallerWithHmacTestingOnlyResponse, GetCallerWithHmacTestingOnlyError, @@ -1600,9 +1911,7 @@ export const authorizeByFeatureTestingOnly = ( - options?: Options -) => +export const authorizeByRoleTestingOnly = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/testingonly/authz/role/get" @@ -1640,9 +1949,7 @@ export const destroyAllRepositories = ( * Tests errors, by returning an error result * (request type: ErrorsErrorTestingOnlyRequest) */ -export const errorsErrorTestingOnly = ( - options?: Options -) => +export const errorsErrorTestingOnly = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/testingonly/errors/error" @@ -1652,9 +1959,7 @@ export const errorsErrorTestingOnly = ( * Tests errors, by throwing an exception * (request type: ErrorsThrowTestingOnlyRequest) */ -export const errorsThrowTestingOnly = ( - options?: Options -) => +export const errorsThrowTestingOnly = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/testingonly/errors/throws" @@ -1673,7 +1978,23 @@ export const formatsTestingOnly = ( }); /** - * Tests the use of an empty post body + * Tests the use of an array in a GET request + * (request type: GetWithSimpleArrayTestingOnlyRequest) + */ +export const getWithSimpleArrayTestingOnly = ( + options?: Options +) => + (options?.client ?? client).get< + GetWithSimpleArrayTestingOnlyResponse, + GetWithSimpleArrayTestingOnlyError, + ThrowOnError + >({ + ...options, + url: "/testingonly/general/get/array" + }); + +/** + * Tests the use of an empty body in a POST request * (request type: PostWithEmptyBodyTestingOnlyRequest) */ export const postWithEmptyBodyTestingOnly = ( @@ -1720,9 +2041,7 @@ export const postWithEnumTestingOnly = ( * Tests access with anonymous access * (request type: GetInsecureTestingOnlyRequest) */ -export const getInsecureTestingOnly = ( - options?: Options -) => +export const getInsecureTestingOnly = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/testingonly/security/none" @@ -1741,7 +2060,28 @@ export const postInsecureTestingOnly = ( }); /** - * Tests OpenAPI swagger for GET requests + * Tests OpenAPI swagger for application/x-www-form-urlencoded POST requests + * (request type: OpenApiPostFormUrlEncodedTestingOnlyRequest) + */ +export const openApiPostFormUrlEncodedTestingOnly = ( + options: Options +) => + (options?.client ?? client).post< + OpenApiPostFormUrlEncodedTestingOnlyResponse, + OpenApiPostFormUrlEncodedTestingOnlyError, + ThrowOnError + >({ + ...options, + ...urlSearchParamsBodySerializer, + headers: { + "Content-Type": "application/x-www-form-urlencoded", + ...options?.headers + }, + url: "/testingonly/openapi/{Id}/urlencoded" + }); + +/** + * Tests OpenAPI swagger for GET requests This includes multiple lines explaining things * (request type: OpenApiGetTestingOnlyRequest) */ export const openApiGetTestingOnly = ( @@ -1789,15 +2129,15 @@ export const openApiPutTestingOnlyPatch = }); /** - * Tests OpenAPI swagger for multipart-form POST requests - * (request type: OpenApiPostMultiPartFormTestingOnlyRequest) + * Tests OpenAPI swagger for multipart/form-data POST requests + * (request type: OpenApiPostMultiPartFormDataTestingOnlyRequest) */ -export const openApiPostMultiPartFormTestingOnly = ( - options: Options +export const openApiPostMultiPartFormDataTestingOnly = ( + options: Options ) => (options?.client ?? client).post< - OpenApiPostMultiPartFormTestingOnlyResponse, - OpenApiPostMultiPartFormTestingOnlyError, + OpenApiPostMultiPartFormDataTestingOnlyResponse, + OpenApiPostMultiPartFormDataTestingOnlyError, ThrowOnError >({ ...options, @@ -1806,7 +2146,7 @@ export const openApiPostMultiPartFormTestingOnly = ( - options?: Options -) => +export const statusesDeleteTestingOnly = (options?: Options) => (options?.client ?? client).delete({ ...options, url: "/testingonly/statuses/delete1" @@ -1857,9 +2195,7 @@ export const statusesDeleteWithResponseTestingOnly = ( - options?: Options -) => +export const statusesGetTestingOnly = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/testingonly/statuses/get" @@ -1929,9 +2265,7 @@ export const statusesPutPatchTestingOnlyPatch = ( - options?: Options -) => +export const statusesSearchTestingOnly = (options?: Options) => (options?.client ?? client).get({ ...options, url: "/testingonly/statuses/search" @@ -1985,6 +2319,23 @@ export const validationsValidatedPostTestingOnly = ( + options?: Options +) => + (options?.client ?? client).post({ + ...options, + ...urlSearchParamsBodySerializer, + headers: { + "Content-Type": "application/x-www-form-urlencoded", + ...options?.headers + }, + url: "/webhooks/twilio" + }); + /** * Delivers a usage event * (request type: DeliverUsageRequest) @@ -1999,9 +2350,7 @@ export const deliverUsage = (options?: Opt * Drains all the pending usage messages * (request type: DrainAllUsagesRequest) */ -export const drainAllUsages = ( - options?: Options -) => +export const drainAllUsages = (options?: Options) => (options?.client ?? client).post({ ...options, url: "/usages/drain" @@ -2043,9 +2392,7 @@ export const changeProfileContactAddressPatch = ( - options: Options -) => +export const changeProfilePut = (options: Options) => (options?.client ?? client).put({ ...options, url: "/profiles/{UserId}" diff --git a/src/WebsiteHost/ClientApp/src/api/apiHost1/types.gen.ts b/src/WebsiteHost/ClientApp/src/api/apiHost1/types.gen.ts index b4b76c89..7150846e 100644 --- a/src/WebsiteHost/ClientApp/src/api/apiHost1/types.gen.ts +++ b/src/WebsiteHost/ClientApp/src/api/apiHost1/types.gen.ts @@ -17,6 +17,16 @@ export type AssignRolesToOrganizationRequest = { userId: string; }; +export type AssociatePasswordMfaAuthenticatorForCallerRequest = { + authenticatorType: PasswordCredentialMfaAuthenticatorType; + mfaToken?: string | null; + phoneNumber?: string | null; +}; + +export type AssociatePasswordMfaAuthenticatorForCallerResponse = { + authenticator: PasswordCredentialMfaAuthenticatorAssociation; +}; + export type Audit = { againstId?: string | null; auditCode?: string | null; @@ -32,7 +42,7 @@ export type AuthenticatePasswordRequest = { }; export type AuthenticateResponse = { - tokens?: AuthenticateTokens; + tokens: AuthenticateTokens; }; export type AuthenticateSingleSignOnRequest = { @@ -90,6 +100,14 @@ export type CarOwner = { id?: string | null; }; +export type ChallengePasswordMfaAuthenticatorForCallerRequest = { + mfaToken: string; +}; + +export type ChallengePasswordMfaAuthenticatorForCallerResponse = { + challenge: PasswordCredentialMfaAuthenticatorChallenge; +}; + export type ChangeDefaultOrganizationRequest = { organizationId: string; }; @@ -98,8 +116,16 @@ export type ChangeOrganizationRequest = { name?: string | null; }; +export type ChangePasswordMfaForCallerRequest = { + isEnabled: boolean; +}; + +export type ChangePasswordMfaResponse = { + credential: PasswordCredential; +}; + export type ChangeProfileAvatarResponse = { - profile?: UserProfile; + profile: UserProfile; }; export type ChangeProfileContactAddressRequest = { @@ -139,6 +165,17 @@ export type ConfirmEmailDeliveryFailedRequest = { receiptId: string; }; +export type ConfirmPasswordMfaAuthenticatorForCallerRequest = { + confirmationCode: string; + mfaToken?: string | null; + oobCode?: string | null; +}; + +export type ConfirmPasswordMfaAuthenticatorForCallerResponse = { + authenticators?: Array | null; + tokens: AuthenticateTokens; +}; + export type ConfirmRegistrationPersonPasswordRequest = { token: string; }; @@ -147,12 +184,23 @@ export type ConfirmRegistrationPersonPasswordResponse = { [key: string]: unknown; }; +export type ConfirmSmsDeliveredRequest = { + deliveredAtUtc?: string | null; + receiptId: string; +}; + +export type ConfirmSmsDeliveryFailedRequest = { + failedAtUtc?: string | null; + reason?: string | null; + receiptId: string; +}; + export type CreateAPIKeyForCallerRequest = { expiresOnUtc?: string | null; }; export type CreateAPIKeyResponse = { - apiKey?: string | null; + apiKey: string; }; export type CreateOrganizationRequest = { @@ -167,10 +215,10 @@ export type CustomDto = { time?: string | null; }; -export type CustomEnum = "One" | "TwentyOne" | "OneHundredAndOne"; +export type CustomEnum = "None" | "One" | "TwentyOne" | "OneHundredAndOne"; export type DeleteProfileAvatarResponse = { - profile?: UserProfile; + profile: UserProfile; }; export type DeliverAuditRequest = { @@ -178,7 +226,7 @@ export type DeliverAuditRequest = { }; export type DeliverMessageResponse = { - isSent?: boolean; + isSent: boolean; }; export type DeliverUsageRequest = { @@ -196,11 +244,27 @@ export type DeliveredEmail = { isSent?: boolean; sentAt?: string | null; subject?: string | null; + tags?: Array | null; toDisplayName?: string | null; toEmailAddress?: string | null; id?: string | null; }; +export type DeliveredSms = { + attempts?: Array | null; + body?: string | null; + deliveredAt?: string | null; + failedDeliveryAt?: string | null; + failedDeliveryReason?: string | null; + isDelivered?: boolean; + isDeliveryFailed?: boolean; + isSent?: boolean; + sentAt?: string | null; + tags?: Array | null; + toPhoneNumber?: string | null; + id?: string | null; +}; + export type DestroyAllRepositoriesRequest = { [key: string]: unknown; }; @@ -231,6 +295,10 @@ export type DrainAllProvisioningsRequest = { [key: string]: unknown; }; +export type DrainAllSmsesRequest = { + [key: string]: unknown; +}; + export type DrainAllUsagesRequest = { [key: string]: unknown; }; @@ -265,8 +333,8 @@ export type EndUserWithMemberships = { }; export type ExportSubscriptionsToMigrateResponse = { - metadata?: SearchResultMetadata; - subscriptions?: Array | null; + metadata: SearchResultMetadata; + subscriptions: Array; }; export type FeatureFlag = { @@ -288,68 +356,78 @@ export type FormatsTestingOnlyRequest = { }; export type FormatsTestingOnlyResponse = { - custom?: CustomDto; + custom: CustomDto; double?: number | null; enum?: CustomEnum; integer?: number | null; - string?: string | null; + string: string; time?: string | null; }; export type GetAllFeatureFlagsResponse = { - flags?: Array | null; + flags: Array; }; export type GetCallerTestingOnlyResponse = { - callerId?: string | null; + callerId: string; }; export type GetCarResponse = { - car?: Car; + car: Car; }; export type GetFeatureFlagResponse = { - flag?: FeatureFlag; + flag: FeatureFlag; +}; + +export type GetIdentityResponse = { + identity: Identity; }; export type GetImageResponse = { - image?: Image; + image: Image; }; export type GetOrganizationResponse = { - organization?: Organization; + organization: Organization; }; export type GetOrganizationSettingsResponse = { - organization?: Organization; - settings?: { + organization: Organization; + settings: { [key: string]: string; - } | null; + }; }; export type GetProfileForCallerResponse = { - profile?: UserProfileForCaller; + profile: UserProfileForCaller; }; export type GetProfileResponse = { - profile?: UserProfile; + profile: UserProfile; }; export type GetRegistrationPersonConfirmationResponse = { - token?: string | null; + token: string; }; export type GetSubscriptionResponse = { - subscription?: SubscriptionWithPlan; + subscription: SubscriptionWithPlan; }; export type GetUserResponse = { - user?: EndUserWithMemberships; + user: EndUserWithMemberships; }; export type HealthCheckResponse = { - name?: string | null; - status?: string | null; + name: string; + status: string; +}; + +export type Identity = { + isMfaEnabled?: boolean; + hasCredentials?: boolean; + id?: string | null; }; export type Image = { @@ -375,7 +453,7 @@ export type InviteGuestRequest = { }; export type InviteGuestResponse = { - invitation?: Invitation; + invitation: Invitation; }; export type InviteMemberToOrganizationRequest = { @@ -384,7 +462,7 @@ export type InviteMemberToOrganizationRequest = { }; export type InviteMemberToOrganizationResponse = { - organization?: Organization; + organization: Organization; }; export type Invoice = { @@ -431,17 +509,21 @@ export type InvoiceSummary = { }; export type ListMembersForOrganizationResponse = { - metadata?: SearchResultMetadata; - members?: Array | null; + metadata: SearchResultMetadata; + members: Array; }; export type ListMembershipsForCallerResponse = { - metadata?: SearchResultMetadata; - memberships?: Array | null; + metadata: SearchResultMetadata; + memberships: Array; +}; + +export type ListPasswordMfaAuthenticatorsForCallerResponse = { + authenticators: Array; }; export type ListPricingPlansResponse = { - plans?: PricingPlans; + plans: PricingPlans; }; export type MachineCredential = { @@ -499,7 +581,7 @@ export type MakeBookingRequest = { }; export type MakeBookingResponse = { - booking?: Booking; + booking: Booking; }; export type Membership = { @@ -520,7 +602,7 @@ export type MigrateSubscriptionRequest = { }; export type MigrateSubscriptionResponse = { - subscription?: Subscription; + subscription: Subscription; }; export type NotifyDomainEventRequest = { @@ -553,6 +635,16 @@ export type OpenApiPutTestingOnlyRequest = { requiredField: string; }; +export type OpenApiTestingOnlyResponse = { + anAnnotatedRequiredField: string; + anInitializedField: string; + aNullableField?: string | null; + aNullableValueTypeField?: boolean | null; + aRequiredField: string; + aValueTypeField: boolean; + message: string; +}; + export type Organization = { avatarUrl?: string | null; createdById?: string | null; @@ -577,10 +669,37 @@ export type OrganizationMember = { export type OrganizationOwnership = "Shared" | "Personal"; export type PasswordCredential = { + isMfaEnabled?: boolean; user?: EndUser; id?: string | null; }; +export type PasswordCredentialMfaAuthenticator = { + isActive?: boolean; + type?: PasswordCredentialMfaAuthenticatorType; + id?: string | null; +}; + +export type PasswordCredentialMfaAuthenticatorAssociation = { + barCodeUri?: string | null; + oobCode?: string | null; + recoveryCodes?: Array | null; + secret?: string | null; + type?: PasswordCredentialMfaAuthenticatorType; +}; + +export type PasswordCredentialMfaAuthenticatorChallenge = { + oobCode?: string | null; + type?: PasswordCredentialMfaAuthenticatorType; +}; + +export type PasswordCredentialMfaAuthenticatorType = + | "None" + | "RecoveryCodes" + | "OobSms" + | "OobEmail" + | "TotpAuthenticator"; + export type PaymentMethodStatus = "Invalid" | "Valid"; export type PaymentMethodType = "None" | "Card" | "Other"; @@ -684,7 +803,7 @@ export type RefreshTokenRequest = { }; export type RefreshTokenResponse = { - tokens?: AuthenticateTokens; + tokens: AuthenticateTokens; }; export type RegisterCarRequest = { @@ -707,7 +826,7 @@ export type RegisterMachineRequest = { }; export type RegisterMachineResponse = { - machine?: MachineCredential; + machine: MachineCredential; }; export type RegisterPersonPasswordRequest = { @@ -722,7 +841,7 @@ export type RegisterPersonPasswordRequest = { }; export type RegisterPersonPasswordResponse = { - credential?: PasswordCredential; + credential: PasswordCredential; }; export type ResendGuestInvitationRequest = { @@ -733,6 +852,10 @@ export type ResendPasswordResetRequest = { [key: string]: unknown; }; +export type ResetPasswordMfaRequest = { + userId?: string | null; +}; + export type ScheduleMaintenanceCarRequest = { /** * An ID of the Organization. If not provided, the ID of the default organization of the authenticated user (if any) is used @@ -743,38 +866,38 @@ export type ScheduleMaintenanceCarRequest = { }; export type SearchAllAPIKeysResponse = { - metadata?: SearchResultMetadata; - keys?: Array | null; + metadata: SearchResultMetadata; + keys: Array; }; export type SearchAllAuditsResponse = { - metadata?: SearchResultMetadata; - audits?: Array | null; + metadata: SearchResultMetadata; + audits: Array; }; export type SearchAllBookingsResponse = { - metadata?: SearchResultMetadata; - bookings?: Array | null; + metadata: SearchResultMetadata; + bookings: Array; }; export type SearchAllCarUnavailabilitiesResponse = { - metadata?: SearchResultMetadata; - unavailabilities?: Array | null; + metadata: SearchResultMetadata; + unavailabilities: Array; }; export type SearchAllCarsResponse = { - metadata?: SearchResultMetadata; - cars?: Array | null; + metadata: SearchResultMetadata; + cars: Array; }; export type SearchAllDomainEventsResponse = { - metadata?: SearchResultMetadata; - events?: Array | null; + metadata: SearchResultMetadata; + events: Array; }; export type SearchEmailDeliveriesResponse = { - metadata?: SearchResultMetadata; - emails?: Array | null; + metadata: SearchResultMetadata; + emails: Array; }; export type SearchResultMetadata = { @@ -785,15 +908,24 @@ export type SearchResultMetadata = { total?: number; }; +export type SearchSmsDeliveriesResponse = { + metadata: SearchResultMetadata; + smses: Array; +}; + export type SearchSubscriptionHistoryResponse = { - metadata?: SearchResultMetadata; - invoices?: Array | null; + metadata: SearchResultMetadata; + invoices: Array; }; export type SendEmailRequest = { message: string; }; +export type SendSmsRequest = { + message: string; +}; + export type SortDirection = "Ascending" | "Descending"; export type Sorting = { @@ -814,16 +946,16 @@ export type StatusesPutPatchTestingOnlyRequest = { }; export type StatusesTestingOnlyResponse = { - message?: string | null; + message: string; }; export type StatusesTestingOnlySearchResponse = { - messages?: Array | null; - metadata?: SearchResultMetadata; + messages: Array; + metadata: SearchResultMetadata; }; export type StringMessageTestingOnlyResponse = { - message?: string | null; + message: string; }; export type Subscription = { @@ -909,8 +1041,23 @@ export type TransferSubscriptionRequest = { userId?: string | null; }; +export type TwilioMessageStatus = + | "Unknown" + | "queued" + | "sending" + | "sent" + | "failed" + | "delivered" + | "undelivered" + | "receiving" + | "received" + | "accepted" + | "scheduled" + | "read" + | "canceled"; + export type UnInviteMemberFromOrganizationResponse = { - organization?: Organization; + organization: Organization; }; export type UnassignPlatformRolesRequest = { @@ -934,15 +1081,15 @@ export type UpdateImageRequest = { }; export type UpdateImageResponse = { - image?: Image; + image: Image; }; export type UpdateUserResponse = { - user?: EndUser; + user: EndUser; }; export type UploadImageResponse = { - image?: Image; + image: Image; }; export type UserProfile = { @@ -983,7 +1130,13 @@ export type ValidationsValidatedPostTestingOnlyRequest = { }; export type VerifyGuestInvitationResponse = { - invitation?: Invitation; + invitation: Invitation; +}; + +export type VerifyPasswordMfaAuthenticatorForCallerRequest = { + confirmationCode: string; + mfaToken: string; + oobCode?: string | null; }; export type CreateApiKeyForCallerData = { @@ -1494,6 +1647,7 @@ export type SearchEmailDeliveriesData = { * List of fields to sort the results on */ Sort?: string; + Tags?: Array; }; }; @@ -1584,6 +1738,10 @@ export type HealthCheckResponse2 = HealthCheckResponse; export type HealthCheckError = ProblemDetails | unknown; +export type GetIdentityForCallerResponse = GetIdentityResponse; + +export type GetIdentityForCallerError = ProblemDetails | unknown; + export type DeleteImageData = { path: { Id: string; @@ -1737,6 +1895,133 @@ export type ListMembershipsForCallerResponse2 = ListMembershipsForCallerResponse export type ListMembershipsForCallerError = ProblemDetails | unknown; +export type AssociatePasswordMfaAuthenticatorForCallerData = { + body?: AssociatePasswordMfaAuthenticatorForCallerRequest; +}; + +export type AssociatePasswordMfaAuthenticatorForCallerResponse2 = AssociatePasswordMfaAuthenticatorForCallerResponse; + +export type AssociatePasswordMfaAuthenticatorForCallerError = ProblemDetails | unknown; + +export type ListPasswordMfaAuthenticatorsForCallerData = { + query?: { + MfaToken?: string; + }; +}; + +export type ListPasswordMfaAuthenticatorsForCallerResponse2 = ListPasswordMfaAuthenticatorsForCallerResponse; + +export type ListPasswordMfaAuthenticatorsForCallerError = ProblemDetails | unknown; + +export type ChallengePasswordMfaAuthenticatorForCallerPutData = { + body?: ChallengePasswordMfaAuthenticatorForCallerRequest; + path: { + AuthenticatorId: string; + }; +}; + +export type ChallengePasswordMfaAuthenticatorForCallerPutResponse = ChallengePasswordMfaAuthenticatorForCallerResponse; + +export type ChallengePasswordMfaAuthenticatorForCallerPutError = ProblemDetails | unknown; + +export type ChallengePasswordMfaAuthenticatorForCallerPatchData = { + body?: ChallengePasswordMfaAuthenticatorForCallerRequest; + path: { + AuthenticatorId: string; + }; +}; + +export type ChallengePasswordMfaAuthenticatorForCallerPatchResponse = + ChallengePasswordMfaAuthenticatorForCallerResponse; + +export type ChallengePasswordMfaAuthenticatorForCallerPatchError = ProblemDetails | unknown; + +export type ChangePasswordMfaForCallerPutData = { + body?: ChangePasswordMfaForCallerRequest; +}; + +export type ChangePasswordMfaForCallerPutResponse = ChangePasswordMfaResponse; + +export type ChangePasswordMfaForCallerPutError = ProblemDetails | unknown; + +export type ChangePasswordMfaForCallerPatchData = { + body?: ChangePasswordMfaForCallerRequest; +}; + +export type ChangePasswordMfaForCallerPatchResponse = ChangePasswordMfaResponse; + +export type ChangePasswordMfaForCallerPatchError = ProblemDetails | unknown; + +export type ConfirmPasswordMfaAuthenticatorForCallerPutData = { + body?: ConfirmPasswordMfaAuthenticatorForCallerRequest; + path: { + AuthenticatorType: string; + }; +}; + +export type ConfirmPasswordMfaAuthenticatorForCallerPutResponse = ConfirmPasswordMfaAuthenticatorForCallerResponse; + +export type ConfirmPasswordMfaAuthenticatorForCallerPutError = ProblemDetails | unknown; + +export type ConfirmPasswordMfaAuthenticatorForCallerPatchData = { + body?: ConfirmPasswordMfaAuthenticatorForCallerRequest; + path: { + AuthenticatorType: string; + }; +}; + +export type ConfirmPasswordMfaAuthenticatorForCallerPatchResponse = ConfirmPasswordMfaAuthenticatorForCallerResponse; + +export type ConfirmPasswordMfaAuthenticatorForCallerPatchError = ProblemDetails | unknown; + +export type DisassociatePasswordMfaAuthenticatorForCallerData = { + path: { + Id: string; + }; +}; + +export type DisassociatePasswordMfaAuthenticatorForCallerResponse = void; + +export type DisassociatePasswordMfaAuthenticatorForCallerError = ProblemDetails | unknown; + +export type ResetPasswordMfaPutData = { + body?: ResetPasswordMfaRequest; +}; + +export type ResetPasswordMfaPutResponse = ChangePasswordMfaResponse; + +export type ResetPasswordMfaPutError = ProblemDetails | unknown; + +export type ResetPasswordMfaPatchData = { + body?: ResetPasswordMfaRequest; +}; + +export type ResetPasswordMfaPatchResponse = ChangePasswordMfaResponse; + +export type ResetPasswordMfaPatchError = ProblemDetails | unknown; + +export type VerifyPasswordMfaAuthenticatorForCallerPutData = { + body?: VerifyPasswordMfaAuthenticatorForCallerRequest; + path: { + AuthenticatorType: string; + }; +}; + +export type VerifyPasswordMfaAuthenticatorForCallerPutResponse = AuthenticateResponse; + +export type VerifyPasswordMfaAuthenticatorForCallerPutError = ProblemDetails | unknown; + +export type VerifyPasswordMfaAuthenticatorForCallerPatchData = { + body?: VerifyPasswordMfaAuthenticatorForCallerRequest; + path: { + AuthenticatorType: string; + }; +}; + +export type VerifyPasswordMfaAuthenticatorForCallerPatchResponse = AuthenticateResponse; + +export type VerifyPasswordMfaAuthenticatorForCallerPatchError = ProblemDetails | unknown; + export type AssignRolesToOrganizationPutData = { body?: AssignRolesToOrganizationRequest; path: { @@ -2049,6 +2334,69 @@ export type AuthenticateSingleSignOnResponse = AuthenticateResponse; export type AuthenticateSingleSignOnError = ProblemDetails | unknown; +export type ConfirmSmsDeliveredData = { + body?: ConfirmSmsDeliveredRequest; +}; + +export type ConfirmSmsDeliveredResponse = EmptyResponse; + +export type ConfirmSmsDeliveredError = ProblemDetails | unknown; + +export type ConfirmSmsDeliveryFailedData = { + body?: ConfirmSmsDeliveryFailedRequest; +}; + +export type ConfirmSmsDeliveryFailedResponse = EmptyResponse; + +export type ConfirmSmsDeliveryFailedError = ProblemDetails | unknown; + +export type DrainAllSmsesData = { + body?: DrainAllSmsesRequest; +}; + +export type DrainAllSmsesResponse = EmptyResponse; + +export type DrainAllSmsesError = ProblemDetails | unknown; + +export type SearchSmsDeliveriesData = { + query?: { + /** + * List of child resources to embed in the resource + */ + Embed?: string; + /** + * List of fields to include and exclude in the search result + */ + Filter?: string; + /** + * The maximum number of search results to return + */ + Limit?: number; + /** + * The zero-based index of the first search result + */ + Offset?: number; + SinceUtc?: string; + /** + * List of fields to sort the results on + */ + Sort?: string; + Tags?: Array; + }; +}; + +export type SearchSmsDeliveriesResponse2 = SearchSmsDeliveriesResponse; + +export type SearchSmsDeliveriesError = ProblemDetails | unknown; + +export type SendSmsData = { + body?: SendSmsRequest; +}; + +export type SendSmsResponse = DeliverMessageResponse; + +export type SendSmsError = ProblemDetails | unknown; + export type CancelSubscriptionData = { path: { Id: string; @@ -2211,6 +2559,16 @@ export type FormatsTestingOnlyResponse2 = FormatsTestingOnlyResponse; export type FormatsTestingOnlyError = ProblemDetails | unknown; +export type GetWithSimpleArrayTestingOnlyData = { + query?: { + AnArray?: Array; + }; +}; + +export type GetWithSimpleArrayTestingOnlyResponse = StringMessageTestingOnlyResponse; + +export type GetWithSimpleArrayTestingOnlyError = ProblemDetails | unknown; + export type PostWithEmptyBodyTestingOnlyData = { body?: PostWithEmptyBodyTestingOnlyRequest; }; @@ -2251,6 +2609,20 @@ export type PostInsecureTestingOnlyResponse = EmptyResponse; export type PostInsecureTestingOnlyError = ProblemDetails | unknown; +export type OpenApiPostFormUrlEncodedTestingOnlyData = { + body?: { + optionalField?: string; + requiredField: string; + }; + path: { + Id: string; + }; +}; + +export type OpenApiPostFormUrlEncodedTestingOnlyResponse = OpenApiTestingOnlyResponse; + +export type OpenApiPostFormUrlEncodedTestingOnlyError = ProblemDetails | unknown; + export type OpenApiGetTestingOnlyData = { path: { /** @@ -2270,7 +2642,7 @@ export type OpenApiGetTestingOnlyData = { }; }; -export type OpenApiGetTestingOnlyResponse = StringMessageTestingOnlyResponse; +export type OpenApiGetTestingOnlyResponse = OpenApiTestingOnlyResponse; export type OpenApiGetTestingOnlyError = ProblemDetails | unknown; @@ -2281,7 +2653,7 @@ export type OpenApiPostTestingOnlyData = { }; }; -export type OpenApiPostTestingOnlyResponse = StringMessageTestingOnlyResponse; +export type OpenApiPostTestingOnlyResponse = OpenApiTestingOnlyResponse; export type OpenApiPostTestingOnlyError = ProblemDetails | unknown; @@ -2292,7 +2664,7 @@ export type OpenApiPutTestingOnlyPutData = { }; }; -export type OpenApiPutTestingOnlyPutResponse = StringMessageTestingOnlyResponse; +export type OpenApiPutTestingOnlyPutResponse = OpenApiTestingOnlyResponse; export type OpenApiPutTestingOnlyPutError = ProblemDetails | unknown; @@ -2303,11 +2675,11 @@ export type OpenApiPutTestingOnlyPatchData = { }; }; -export type OpenApiPutTestingOnlyPatchResponse = StringMessageTestingOnlyResponse; +export type OpenApiPutTestingOnlyPatchResponse = OpenApiTestingOnlyResponse; export type OpenApiPutTestingOnlyPatchError = ProblemDetails | unknown; -export type OpenApiPostMultiPartFormTestingOnlyData = { +export type OpenApiPostMultiPartFormDataTestingOnlyData = { body?: { files: Array; optionalField?: string; @@ -2318,9 +2690,9 @@ export type OpenApiPostMultiPartFormTestingOnlyData = { }; }; -export type OpenApiPostMultiPartFormTestingOnlyResponse = StringMessageTestingOnlyResponse; +export type OpenApiPostMultiPartFormDataTestingOnlyResponse = OpenApiTestingOnlyResponse; -export type OpenApiPostMultiPartFormTestingOnlyError = ProblemDetails | unknown; +export type OpenApiPostMultiPartFormDataTestingOnlyError = ProblemDetails | unknown; export type RequestCorrelationsTestingOnlyResponse = StringMessageTestingOnlyResponse; @@ -2409,6 +2781,23 @@ export type ValidationsValidatedPostTestingOnlyResponse = StringMessageTestingOn export type ValidationsValidatedPostTestingOnlyError = ProblemDetails | unknown; +export type TwilioNotifyWebhookEventData = { + body?: { + apiVersion?: string; + errorCode?: string; + from?: string; + messageSid?: string; + messageStatus?: unknown; + rawDlrDoneDate?: number; + smsStatus?: unknown; + to?: string; + }; +}; + +export type TwilioNotifyWebhookEventResponse = EmptyResponse; + +export type TwilioNotifyWebhookEventError = ProblemDetails | unknown; + export type DeliverUsageData = { body?: DeliverUsageRequest; }; diff --git a/src/WebsiteHost/ClientApp/src/api/websiteHost.swagger.gen.json b/src/WebsiteHost/ClientApp/src/api/websiteHost.swagger.gen.json index 848fbbee..2ca9ffde 100644 --- a/src/WebsiteHost/ClientApp/src/api/websiteHost.swagger.gen.json +++ b/src/WebsiteHost/ClientApp/src/api/websiteHost.swagger.gen.json @@ -62,19 +62,19 @@ } }, "401": { - "description": "The user's username or password is invalid" + "description": "The user's credentials are invalid" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { - "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" + "description": "When the user has authenticated with credentials, but has MFA enabled. The details of the error contains a value of \"mfa_required\"." }, "404": { "description": "Not Found: The server cannot find the requested resource" }, "405": { - "description": "The user has not yet verified their registration" + "description": "When the user has authenticated with credentials, but has not yet verified their registration" }, "409": { "description": "Conflict: The request conflicts with the current state of the resource" @@ -161,7 +161,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -257,7 +257,7 @@ "description": "The refresh token has expired" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -344,7 +344,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -442,7 +442,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -529,7 +529,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -637,7 +637,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -733,7 +733,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -829,7 +829,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -925,7 +925,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1021,7 +1021,7 @@ "description": "Unauthorized: The client must authenticate itself to get the requested response" }, "402": { - "description": "Payment Required: The client must have payment information to get ther requested response" + "description": "Payment Required: The client must have payment information to get the requested response" }, "403": { "description": "Forbidden: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource" @@ -1087,11 +1087,13 @@ "additionalProperties": false }, "AuthenticateResponse": { + "required": [ + "userId" + ], "type": "object", "properties": { "userId": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false @@ -1114,19 +1116,24 @@ "additionalProperties": false }, "GetAllFeatureFlagsResponse": { + "required": [ + "flags" + ], "type": "object", "properties": { "flags": { "type": "array", "items": { "$ref": "#/components/schemas/FeatureFlag" - }, - "nullable": true + } } }, "additionalProperties": false }, "GetFeatureFlagResponse": { + "required": [ + "flag" + ], "type": "object", "properties": { "flag": { @@ -1136,15 +1143,17 @@ "additionalProperties": false }, "HealthCheckResponse": { + "required": [ + "name", + "status" + ], "type": "object", "properties": { "name": { - "type": "string", - "nullable": true + "type": "string" }, "status": { - "type": "string", - "nullable": true + "type": "string" } }, "additionalProperties": false diff --git a/src/WebsiteHost/ClientApp/src/api/websiteHost/schemas.gen.ts b/src/WebsiteHost/ClientApp/src/api/websiteHost/schemas.gen.ts index f4c83c9b..88668959 100644 --- a/src/WebsiteHost/ClientApp/src/api/websiteHost/schemas.gen.ts +++ b/src/WebsiteHost/ClientApp/src/api/websiteHost/schemas.gen.ts @@ -25,11 +25,11 @@ export const AuthenticateRequestSchema = { } as const; export const AuthenticateResponseSchema = { + required: ["userId"], type: "object", properties: { userId: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false @@ -55,20 +55,21 @@ export const FeatureFlagSchema = { } as const; export const GetAllFeatureFlagsResponseSchema = { + required: ["flags"], type: "object", properties: { flags: { type: "array", items: { $ref: "#/components/schemas/FeatureFlag" - }, - nullable: true + } } }, additionalProperties: false } as const; export const GetFeatureFlagResponseSchema = { + required: ["flag"], type: "object", properties: { flag: { @@ -79,15 +80,14 @@ export const GetFeatureFlagResponseSchema = { } as const; export const HealthCheckResponseSchema = { + required: ["name", "status"], type: "object", properties: { name: { - type: "string", - nullable: true + type: "string" }, status: { - type: "string", - nullable: true + type: "string" } }, additionalProperties: false diff --git a/src/WebsiteHost/ClientApp/src/api/websiteHost/services.gen.ts b/src/WebsiteHost/ClientApp/src/api/websiteHost/services.gen.ts index cd17bea7..b3b90265 100644 --- a/src/WebsiteHost/ClientApp/src/api/websiteHost/services.gen.ts +++ b/src/WebsiteHost/ClientApp/src/api/websiteHost/services.gen.ts @@ -133,9 +133,7 @@ export const recordMeasure = ( * Records a page view event in the product * (request type: RecordPageViewRequest) */ -export const recordPageView = ( - options?: Options -) => +export const recordPageView = (options?: Options) => (options?.client ?? client).post({ ...options, url: "/api/record/page_view" diff --git a/src/WebsiteHost/ClientApp/src/api/websiteHost/types.gen.ts b/src/WebsiteHost/ClientApp/src/api/websiteHost/types.gen.ts index 9c4a54e8..50edcd94 100644 --- a/src/WebsiteHost/ClientApp/src/api/websiteHost/types.gen.ts +++ b/src/WebsiteHost/ClientApp/src/api/websiteHost/types.gen.ts @@ -8,7 +8,7 @@ export type AuthenticateRequest = { }; export type AuthenticateResponse = { - userId?: string | null; + userId: string; }; export type EmptyResponse = { @@ -21,16 +21,16 @@ export type FeatureFlag = { }; export type GetAllFeatureFlagsResponse = { - flags?: Array | null; + flags: Array; }; export type GetFeatureFlagResponse = { - flag?: FeatureFlag; + flag: FeatureFlag; }; export type HealthCheckResponse = { - name?: string | null; - status?: string | null; + name: string; + status: string; }; export type LogoutRequest = {