| File: Cli\NativeCliDataTypes.cs | Web Access |
| Project: src\src\Aspire.Hosting.Native.Server\Aspire.Hosting.Native.Server.csproj (Aspire.Hosting.Native.Server) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Text.Json; using System.Text.Json.Serialization; using Aspire.Hosting.Native.Api; using Microsoft.Extensions.Logging; namespace Aspire.Hosting.Native.Cli; /// <summary>Describes the existing CLI run backchannel wire types.</summary> internal sealed record NativeCliRequest { public required string Jsonrpc { get; init; } public JsonElement? Id { get; init; } public required string Method { get; init; } public JsonElement? Params { get; init; } public string? Traceparent { get; init; } public string? Tracestate { get; init; } } internal sealed record NativeCliResponse { public string Jsonrpc { get; init; } = "2.0"; public required JsonElement Id { get; init; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public JsonElement? Result { get; init; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public NativeCliError? Error { get; init; } } internal sealed record NativeCliError(int Code, string Message); internal sealed record NativeCliStreamDescriptor(long Token); internal sealed record NativeCliEnumeratorResult(JsonElement[] Values, bool Finished); internal sealed record NativeCliCancellation(JsonElement Id); internal sealed record NativeCliDashboardUrls { public bool DashboardHealthy { get; init; } = true; public string? BaseUrlWithLoginToken { get; init; } public string? CodespacesUrlWithLoginToken { get; init; } } internal sealed record NativeCliResourceState(string Resource, string Type, string State, string[] Endpoints, string? Health); internal sealed record NativeCliLogEntry(long SequenceNumber, Guid GenerationId, EventId EventId, LogLevel LogLevel, string Message, DateTimeOffset Timestamp, string CategoryName); internal sealed record NativePipelineStep(string Name, string[] DependsOn, string? Description, string[] Tags, string? ResourceName); internal sealed record NativePipelineSteps(NativePipelineStep[] Steps); [JsonSerializable(typeof(NativeCliRequest))] [JsonSerializable(typeof(NativeCliResponse))] [JsonSerializable(typeof(NativeCliCancellation))] [JsonSerializable(typeof(NativeCliStreamDescriptor))] [JsonSerializable(typeof(NativeCliEnumeratorResult))] [JsonSerializable(typeof(NativeCliDashboardUrls))] [JsonSerializable(typeof(NativeCliResourceState))] [JsonSerializable(typeof(NativeCliLogEntry))] [JsonSerializable(typeof(NativePublishingActivity))] [JsonSerializable(typeof(NativePipelineSteps))] [JsonSerializable(typeof(string[]))] [JsonSerializable(typeof(string))] [JsonSourceGenerationOptions(PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase, UnmappedMemberHandling = JsonUnmappedMemberHandling.Disallow, RespectNullableAnnotations = true)] internal sealed partial class NativeCliJsonContext : JsonSerializerContext;