File: artifacts\obj\Aspire.Hosting.Native.Server\Debug\native-ats\NativeDispatch.g.cs
Project: src\src\Aspire.Hosting.Native.Server\Aspire.Hosting.Native.Server.csproj (Aspire.Hosting.Native.Server)
// Generated from ATS declarations. Do not edit.
#nullable enable
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
using Aspire.Hosting.Native.Api;
using Aspire.Hosting.Native.Authoring;
using Aspire.Hosting.Native.Model;
namespace Aspire.Hosting.Native.Rpc;
internal static class NativeDispatch
{
    public static async Task<JsonNode?> InvokeAsync(NativeApplicationServer server, NativeHandles handles, NativeRpcConnection connection, NativeRpcConnection callbackConnection, string capability, JsonObject arguments)
    {
        try
        {
        switch (capability)
        {
            case "Aspire.Hosting.Native.Api/abortRevision":
            {
                RpcArguments.Validate(arguments, ["context", "revision"]);
                var target = handles.Get<ApplicationWorkspace>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
                target.AbortRevision(handles.Get<Composition>(arguments["revision"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition"));
                return null;
            }
            case "Aspire.Hosting.Native.Api/addComputeEnvironment":
            {
                RpcArguments.Validate(arguments, ["context", "name", "typeId"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddComputeEnvironment(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["typeId"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/addConfiguredParameter":
            {
                RpcArguments.Validate(arguments, ["context", "name", "secret", "publishing"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddConfiguredParameter(RpcArguments.String(arguments["name"]), RpcArguments.Boolean(arguments["secret"]), RpcArguments.Boolean(arguments["publishing"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/addContainer":
            {
                RpcArguments.Validate(arguments, ["context", "name", "image"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddContainer(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["image"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/addExecutable":
            {
                RpcArguments.Validate(arguments, ["context", "name", "executablePath", "workingDirectory"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddExecutable(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["executablePath"]), RpcArguments.String(arguments["workingDirectory"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/addGeneratedParameter":
            {
                RpcArguments.Validate(arguments, ["context", "name", "options", "secret"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddGeneratedParameter(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["options"]), RpcArguments.Boolean(arguments["secret"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/addGeneratedSecretParameter":
            {
                RpcArguments.Validate(arguments, ["context", "name"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddGeneratedSecretParameter(RpcArguments.String(arguments["name"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/addParameterValue":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value", "secret", "publishValueAsDefault"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddParameterValue(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["value"]), RpcArguments.Boolean(arguments["secret"]), RpcArguments.Boolean(arguments["publishValueAsDefault"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/addResource":
            {
                RpcArguments.Validate(arguments, ["context", "name", "typeId"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddResource(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["typeId"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/addSecretParameter":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.AddSecretParameter(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["value"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/appendResourceLog":
            {
                RpcArguments.Validate(arguments, ["context", "stream", "message"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                target.AppendResourceLog(RpcArguments.String(arguments["stream"]), RpcArguments.String(arguments["message"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/awaitRuntimeOperation":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<RuntimeOperation>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.RuntimeOperation");
                var result = await target.AwaitRuntimeOperation().ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.RuntimeOperationResult);
            }
            case "Aspire.Hosting.Native.Api/beginPublishing":
            {
                RpcArguments.Validate(arguments, ["context", "target"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                target.BeginPublishing(RpcArguments.String(arguments["target"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/beginRevision":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationWorkspace>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
                handles.EnsureCapacity();
                var result = target.BeginRevision();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
            }
            case "Aspire.Hosting.Native.Api/claimPublishingSteps":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                var result = target.ClaimPublishingSteps();
                return new JsonArray(result.Select(value => (JsonNode?)JsonValue.Create(value)).ToArray());
            }
            case "Aspire.Hosting.Native.Api/commitRevision":
            {
                RpcArguments.Validate(arguments, ["context", "revision"]);
                var target = handles.Get<ApplicationWorkspace>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
                await target.CommitRevision(handles.Get<Composition>(arguments["revision"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition")).ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Api/completePublishing":
            {
                RpcArguments.Validate(arguments, ["context", "failed"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                target.CompletePublishing(RpcArguments.Boolean(arguments["failed"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/completeResourceCommand":
            {
                RpcArguments.Validate(arguments, ["context", "requestId", "result"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                target.CompleteResourceCommand(RpcArguments.String(arguments["requestId"]), RpcArguments.Dto(arguments["result"], NativeRpcJsonContext.Default.RuntimeOperationResult));
                return null;
            }
            case "Aspire.Hosting.Native.Api/completeResourceConfiguration":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "result"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                target.CompleteResourceConfiguration(RpcArguments.Int64(arguments["revision"]), RpcArguments.Dto(arguments["result"], NativeRpcJsonContext.Default.RuntimeOperationResult));
                return null;
            }
            case "Aspire.Hosting.Native.Api/concatValue":
            {
                RpcArguments.Validate(arguments, ["context", "suffix"]);
                var target = handles.Get<DeclaredValue>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
                handles.EnsureCapacity();
                var result = target.ConcatValue(handles.Get<DeclaredValue>(arguments["suffix"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue"));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/configurePublishing":
            {
                RpcArguments.Validate(arguments, ["context", "graphJson"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                target.ConfigurePublishing(RpcArguments.String(arguments["graphJson"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/createApplicationLifetime":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.CreateApplicationLifetime();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationRunLifetime");
            }
            case "Aspire.Hosting.Native.Api/createApplicationWorkspace":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.CreateApplicationWorkspace();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
            }
            case "Aspire.Hosting.Native.Api/createEndpointValue":
            {
                RpcArguments.Validate(arguments, ["context", "resource", "endpointName", "property"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.CreateEndpointValue(handles.Get<DeclaredResource>(arguments["resource"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource"), RpcArguments.String(arguments["endpointName"]), RpcArguments.String(arguments["property"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/createExecution":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.CreateExecution();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
            }
            case "Aspire.Hosting.Native.Api/createLiteralValue":
            {
                RpcArguments.Validate(arguments, ["context", "value"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.CreateLiteralValue(RpcArguments.String(arguments["value"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/createRpcBuilder":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.CreateRpcBuilder();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcBuilder");
            }
            case "Aspire.Hosting.Native.Api/defineResourceCommand":
            {
                RpcArguments.Validate(arguments, ["context", "name", "displayName"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                target.DefineResourceCommand(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["displayName"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/encodeUriValue":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<DeclaredValue>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
                handles.EnsureCapacity();
                var result = target.EncodeUriValue();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Api/exportPublishModel":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                var result = target.ExportPublishModel();
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/getApplicationExecution":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationWorkspace>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
                handles.EnsureCapacity();
                var result = target.GetApplicationExecution();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
            }
            case "Aspire.Hosting.Native.Api/inspect":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                var result = target.Inspect();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.CompositionSnapshot);
            }
            case "Aspire.Hosting.Native.Api/inspectExecutionSymbolicConfiguration":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = target.InspectExecutionSymbolicConfiguration();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.SymbolicConfigurationSnapshot);
            }
            case "Aspire.Hosting.Native.Api/inspectResource":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                var result = target.InspectResource();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.DeclarationSnapshot);
            }
            case "Aspire.Hosting.Native.Api/inspectSymbolicConfiguration":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                var result = target.InspectSymbolicConfiguration();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.SymbolicConfigurationSnapshot);
            }
            case "Aspire.Hosting.Native.Api/inviteApplicationObserver":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
                var result = target.InviteApplicationObserver();
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/inviteApplicationWorkspace":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationWorkspace>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
                var result = target.InviteApplicationWorkspace();
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/inviteResourceExecution":
            {
                RpcArguments.Validate(arguments, ["context", "resource"]);
                var target = handles.Get<ApplicationExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
                var result = target.InviteResourceExecution(handles.Get<DeclaredResource>(arguments["resource"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource"));
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/invokeResourceCommand":
            {
                RpcArguments.Validate(arguments, ["context", "resourceName", "commandName"]);
                var target = handles.Get<ApplicationObserver>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
                handles.EnsureCapacity();
                var result = target.InvokeResourceCommand(RpcArguments.String(arguments["resourceName"]), RpcArguments.String(arguments["commandName"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.RuntimeOperation");
            }
            case "Aspire.Hosting.Native.Api/joinApplicationObserver":
            {
                RpcArguments.Validate(arguments, ["context", "invitation"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.JoinApplicationObserver(RpcArguments.String(arguments["invitation"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
            }
            case "Aspire.Hosting.Native.Api/joinApplicationWorkspace":
            {
                RpcArguments.Validate(arguments, ["context", "invitation"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.JoinApplicationWorkspace(RpcArguments.String(arguments["invitation"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
            }
            case "Aspire.Hosting.Native.Api/joinResourceExecution":
            {
                RpcArguments.Validate(arguments, ["context", "invitation"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.JoinResourceExecution(RpcArguments.String(arguments["invitation"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
            }
            case "Aspire.Hosting.Native.Api/openApplication":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                handles.EnsureCapacity();
                var result = target.OpenApplication();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.CompositionSession");
            }
            case "Aspire.Hosting.Native.Api/publishObservation":
            {
                RpcArguments.Validate(arguments, ["context", "observation"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                target.PublishObservation(RpcArguments.Dto(arguments["observation"], NativeRpcJsonContext.Default.ResourceObservation));
                return null;
            }
            case "Aspire.Hosting.Native.Api/readApplicationState":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
                var result = target.ReadApplicationState();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ApplicationObservations);
            }
            case "Aspire.Hosting.Native.Api/readConfirmations":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationObserver>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
                var result = target.ReadConfirmations();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.PendingConfirmations);
            }
            case "Aspire.Hosting.Native.Api/readLifecyclePhase":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ResourceLifecycleScope>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceLifecycleScope");
                var result = target.ReadLifecyclePhase();
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/readResourceCommands":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = target.ReadResourceCommands();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.PendingResourceCommands);
            }
            case "Aspire.Hosting.Native.Api/readResourceConfiguration":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = target.ReadResourceConfiguration();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ResourceConfigurationRevision);
            }
            case "Aspire.Hosting.Native.Api/readResourceDependencies":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = target.ReadResourceDependencies();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ApplicationObservations);
            }
            case "Aspire.Hosting.Native.Api/readResourceLogs":
            {
                RpcArguments.Validate(arguments, ["context", "resourceId", "afterSequence"]);
                var target = handles.Get<ApplicationObserver>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
                var result = target.ReadResourceLogs(RpcArguments.String(arguments["resourceId"]), RpcArguments.Int64(arguments["afterSequence"]));
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ResourceLogs);
            }
            case "Aspire.Hosting.Native.Api/readResourceObservations":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationObserver>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
                var result = target.ReadResourceObservations();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ApplicationObservations);
            }
            case "Aspire.Hosting.Native.Api/removeSymbolicConfiguration":
            {
                RpcArguments.Validate(arguments, ["context", "name"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                target.RemoveSymbolicConfiguration(RpcArguments.String(arguments["name"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/reportPublishingActivity":
            {
                RpcArguments.Validate(arguments, ["context", "step", "status", "complete", "failed"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                target.ReportPublishingActivity(RpcArguments.String(arguments["step"]), RpcArguments.String(arguments["status"]), RpcArguments.Boolean(arguments["complete"]), RpcArguments.Boolean(arguments["failed"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/reportPublishingProgress":
            {
                RpcArguments.Validate(arguments, ["context", "step", "type", "id", "status", "complete", "failed", "markdown"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                target.ReportPublishingProgress(RpcArguments.String(arguments["step"]), RpcArguments.String(arguments["type"]), RpcArguments.String(arguments["id"]), RpcArguments.String(arguments["status"]), RpcArguments.Boolean(arguments["complete"]), RpcArguments.Boolean(arguments["failed"]), RpcArguments.Boolean(arguments["markdown"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/requestConfirmation":
            {
                RpcArguments.Validate(arguments, ["context", "message"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                handles.EnsureCapacity();
                var result = target.RequestConfirmation(RpcArguments.String(arguments["message"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.RuntimeOperation");
            }
            case "Aspire.Hosting.Native.Api/respondConfirmation":
            {
                RpcArguments.Validate(arguments, ["context", "requestId", "accepted"]);
                var target = handles.Get<ApplicationObserver>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
                target.RespondConfirmation(RpcArguments.String(arguments["requestId"]), RpcArguments.Boolean(arguments["accepted"]));
                return null;
            }
            case "Aspire.Hosting.Native.Api/restartContainer":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "container"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.RestartContainer(RpcArguments.Int64(arguments["revision"]), RpcArguments.Dto(arguments["container"], NativeRpcJsonContext.Default.ContainerLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.StartedWorkload);
            }
            case "Aspire.Hosting.Native.Api/restartContainerWithValues":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "networkContext", "launch", "bindings"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.RestartContainerWithValues(RpcArguments.Int64(arguments["revision"]), RpcArguments.String(arguments["networkContext"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ContainerWorkloadLaunch), RpcArguments.Dto(arguments["bindings"], NativeRpcJsonContext.Default.SymbolicLaunchBindings)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/restartContainerWorkload":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "launch"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.RestartContainerWorkload(RpcArguments.Int64(arguments["revision"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ContainerWorkloadLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/restartExecutable":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "executable"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.RestartExecutable(RpcArguments.Int64(arguments["revision"]), RpcArguments.Dto(arguments["executable"], NativeRpcJsonContext.Default.ExecutableLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.StartedWorkload);
            }
            case "Aspire.Hosting.Native.Api/restartExecutableWithValues":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "networkContext", "launch", "bindings"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.RestartExecutableWithValues(RpcArguments.Int64(arguments["revision"]), RpcArguments.String(arguments["networkContext"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ExecutableWorkloadLaunch), RpcArguments.Dto(arguments["bindings"], NativeRpcJsonContext.Default.SymbolicLaunchBindings)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/restartExecutableWorkload":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "launch"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.RestartExecutableWorkload(RpcArguments.Int64(arguments["revision"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ExecutableWorkloadLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/retireApplicationWorkspace":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationWorkspace>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationWorkspace");
                await target.RetireApplicationWorkspace().ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Api/retireGeneration":
            {
                RpcArguments.Validate(arguments, ["context", "composition"]);
                var target = handles.Get<CompositionSession>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.CompositionSession");
                await target.RetireGeneration(handles.Get<Composition>(arguments["composition"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition")).ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Api/runLifecycleExecutable":
            {
                RpcArguments.Validate(arguments, ["context", "launch", "bindings"]);
                var target = handles.Get<ResourceLifecycleScope>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceLifecycleScope");
                var result = await target.RunLifecycleExecutable(RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ExecutableWorkloadLaunch), RpcArguments.Dto(arguments["bindings"], NativeRpcJsonContext.Default.SymbolicLaunchBindings)).ConfigureAwait(false);
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/seal":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                var result = target.Seal();
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.CompositionSnapshot);
            }
            case "Aspire.Hosting.Native.Api/setResourceConfiguration":
            {
                RpcArguments.Validate(arguments, ["context", "configuration"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                target.SetResourceConfiguration(RpcArguments.Dto(arguments["configuration"], NativeRpcJsonContext.Default.ResourceConfiguration));
                return null;
            }
            case "Aspire.Hosting.Native.Api/setSymbolicConfiguration":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                target.SetSymbolicConfiguration(RpcArguments.String(arguments["name"]), handles.Get<DeclaredValue>(arguments["value"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue"));
                return null;
            }
            case "Aspire.Hosting.Native.Api/startApplication":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<Composition>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
                handles.EnsureCapacity();
                var result = target.StartApplication();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
            }
            case "Aspire.Hosting.Native.Api/startContainer":
            {
                RpcArguments.Validate(arguments, ["context", "container"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.StartContainer(RpcArguments.Dto(arguments["container"], NativeRpcJsonContext.Default.ContainerLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.StartedWorkload);
            }
            case "Aspire.Hosting.Native.Api/startContainerWithValues":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "networkContext", "launch", "bindings"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.StartContainerWithValues(RpcArguments.Int64(arguments["revision"]), RpcArguments.String(arguments["networkContext"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ContainerWorkloadLaunch), RpcArguments.Dto(arguments["bindings"], NativeRpcJsonContext.Default.SymbolicLaunchBindings)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/startContainerWorkload":
            {
                RpcArguments.Validate(arguments, ["context", "launch"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.StartContainerWorkload(RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ContainerWorkloadLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/startExecutable":
            {
                RpcArguments.Validate(arguments, ["context", "executable"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.StartExecutable(RpcArguments.Dto(arguments["executable"], NativeRpcJsonContext.Default.ExecutableLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.StartedWorkload);
            }
            case "Aspire.Hosting.Native.Api/startExecutableWithValues":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "networkContext", "launch", "bindings"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.StartExecutableWithValues(RpcArguments.Int64(arguments["revision"]), RpcArguments.String(arguments["networkContext"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ExecutableWorkloadLaunch), RpcArguments.Dto(arguments["bindings"], NativeRpcJsonContext.Default.SymbolicLaunchBindings)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/startExecutableWorkload":
            {
                RpcArguments.Validate(arguments, ["context", "launch"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.StartExecutableWorkload(RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ExecutableWorkloadLaunch)).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.WorkloadAllocation);
            }
            case "Aspire.Hosting.Native.Api/startGeneration":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<CompositionSession>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.CompositionSession");
                handles.EnsureCapacity();
                var result = target.StartGeneration();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
            }
            case "Aspire.Hosting.Native.Api/waitApplicationReady":
            {
                RpcArguments.Validate(arguments, ["context", "timeoutMilliseconds"]);
                var target = handles.Get<ApplicationExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
                await target.WaitApplicationReady(RpcArguments.Int32(arguments["timeoutMilliseconds"])).ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Api/waitFor":
            {
                RpcArguments.Validate(arguments, ["context", "dependency"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                target.WaitFor(handles.Get<DeclaredResource>(arguments["dependency"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource"));
                return null;
            }
            case "Aspire.Hosting.Native.Api/waitForPublishingStop":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<NativeApplicationServer>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.NativeApplicationServer");
                await target.WaitForPublishingStop().ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Api/waitForStop":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<ApplicationRunLifetime>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationRunLifetime");
                await target.WaitForStop().ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Api/waitResourceCommands":
            {
                RpcArguments.Validate(arguments, ["context", "timeoutMilliseconds"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.WaitResourceCommands(RpcArguments.Int32(arguments["timeoutMilliseconds"])).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.PendingResourceCommands);
            }
            case "Aspire.Hosting.Native.Api/waitResourceCompletion":
            {
                RpcArguments.Validate(arguments, ["context", "resource", "timeoutMilliseconds"]);
                var target = handles.Get<ApplicationExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationExecution");
                var result = await target.WaitResourceCompletion(handles.Get<DeclaredResource>(arguments["resource"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource"), RpcArguments.Int32(arguments["timeoutMilliseconds"])).ConfigureAwait(false);
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Api/waitResourceConfiguration":
            {
                RpcArguments.Validate(arguments, ["context", "revision", "timeoutMilliseconds"]);
                var target = handles.Get<ResourceExecution>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceExecution");
                var result = await target.WaitResourceConfiguration(RpcArguments.Int64(arguments["revision"]), RpcArguments.Int32(arguments["timeoutMilliseconds"])).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ResourceConfigurationRevision);
            }
            case "Aspire.Hosting.Native.Api/waitResourceObservations":
            {
                RpcArguments.Validate(arguments, ["context", "version", "timeoutMilliseconds"]);
                var target = handles.Get<ApplicationObserver>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ApplicationObserver");
                var result = await target.WaitResourceObservations(RpcArguments.Int64(arguments["version"]), RpcArguments.Int32(arguments["timeoutMilliseconds"])).ConfigureAwait(false);
                return JsonSerializer.SerializeToNode(result, NativeRpcJsonContext.Default.ApplicationObservations);
            }
            case "Aspire.Hosting.Native.Api/withArgument":
            {
                RpcArguments.Validate(arguments, ["context", "value"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithArgument(handles.Get<DeclaredValue>(arguments["value"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue"));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withBindMount":
            {
                RpcArguments.Validate(arguments, ["context", "source", "target", "readOnly"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithBindMount(RpcArguments.String(arguments["source"]), RpcArguments.String(arguments["target"]), RpcArguments.Boolean(arguments["readOnly"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withComputeEnvironment":
            {
                RpcArguments.Validate(arguments, ["context", "environment"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                target.WithComputeEnvironment(handles.Get<DeclaredResource>(arguments["environment"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource"));
                return null;
            }
            case "Aspire.Hosting.Native.Api/withEndpoint":
            {
                RpcArguments.Validate(arguments, ["context", "endpoint"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithEndpoint(RpcArguments.Dto(arguments["endpoint"], NativeRpcJsonContext.Default.WorkloadEndpointDeclaration));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withEntrypoint":
            {
                RpcArguments.Validate(arguments, ["context", "entrypoint"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithEntrypoint(RpcArguments.String(arguments["entrypoint"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withEnvironment":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithEnvironment(RpcArguments.String(arguments["name"]), handles.Get<DeclaredValue>(arguments["value"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue"));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withExternalHttpEndpoints":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithExternalHttpEndpoints();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withLifecycleExecutable":
            {
                RpcArguments.Validate(arguments, ["context", "phase", "launch", "bindings"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithLifecycleExecutable(RpcArguments.String(arguments["phase"]), RpcArguments.Dto(arguments["launch"], NativeRpcJsonContext.Default.ExecutableWorkloadLaunch), RpcArguments.Dto(arguments["bindings"], NativeRpcJsonContext.Default.SymbolicLaunchBindings));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withReference":
            {
                RpcArguments.Validate(arguments, ["context", "environmentName", "value"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithReference(RpcArguments.String(arguments["environmentName"]), handles.Get<DeclaredValue>(arguments["value"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue"));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/withVolume":
            {
                RpcArguments.Validate(arguments, ["context", "name", "target", "readOnly"]);
                var target = handles.Get<DeclaredResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
                handles.EnsureCapacity();
                var result = target.WithVolume(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["target"]), RpcArguments.Boolean(arguments["readOnly"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredResource");
            }
            case "Aspire.Hosting.Native.Api/writeLifecycleLog":
            {
                RpcArguments.Validate(arguments, ["context", "stream", "message"]);
                var target = handles.Get<ResourceLifecycleScope>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.ResourceLifecycleScope");
                target.WriteLifecycleLog(RpcArguments.String(arguments["stream"]), RpcArguments.String(arguments["message"]));
                return null;
            }
            case "Aspire.Hosting.Native.Authoring/add":
            {
                RpcArguments.Validate(arguments, ["context", "value"]);
                var target = handles.Get<RpcArgsEditor>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcArgsEditor");
                target.Add(RpcArguments.Union(arguments["value"], handles, ["Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEndpoint", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource"]));
                return null;
            }
            case "Aspire.Hosting.Native.Authoring/addContainer":
            {
                RpcArguments.Validate(arguments, ["context", "name", "image"]);
                var target = handles.Get<RpcBuilder>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcBuilder");
                handles.EnsureCapacity();
                var result = target.AddContainer(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["image"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/addExecutable":
            {
                RpcArguments.Validate(arguments, ["context", "name", "executablePath", "workingDirectory"]);
                var target = handles.Get<RpcBuilder>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcBuilder");
                handles.EnsureCapacity();
                var result = target.AddExecutable(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["executablePath"]), RpcArguments.String(arguments["workingDirectory"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/addSecretParameter":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value"]);
                var target = handles.Get<RpcBuilder>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcBuilder");
                handles.EnsureCapacity();
                var result = target.AddSecretParameter(RpcArguments.String(arguments["name"]), RpcArguments.String(arguments["value"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Authoring/build":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<RpcBuilder>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcBuilder");
                handles.EnsureCapacity();
                var result = target.Build();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.Composition");
            }
            case "Aspire.Hosting.Native.Authoring/getEndpoint":
            {
                RpcArguments.Validate(arguments, ["context", "name"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.GetEndpoint(RpcArguments.String(arguments["name"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEndpoint");
            }
            case "Aspire.Hosting.Native.Authoring/getResourceName":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                var result = target.GetResourceName();
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Authoring/getSerializedAnnotation":
            {
                RpcArguments.Validate(arguments, ["context", "annotationId"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                var result = target.GetSerializedAnnotation(RpcArguments.String(arguments["annotationId"]));
                return JsonValue.Create(result);
            }
            case "Aspire.Hosting.Native.Authoring/property":
            {
                RpcArguments.Validate(arguments, ["context", "property"]);
                var target = handles.Get<RpcEndpoint>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEndpoint");
                handles.EnsureCapacity();
                var result = target.Property(RpcArguments.String(arguments["property"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue");
            }
            case "Aspire.Hosting.Native.Authoring/retire":
            {
                RpcArguments.Validate(arguments, ["context"]);
                var target = handles.Get<RpcBuilder>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcBuilder");
                await target.Retire().ConfigureAwait(false);
                return null;
            }
            case "Aspire.Hosting.Native.Authoring/set":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value"]);
                var target = handles.Get<RpcEnvironmentEditor>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEnvironmentEditor");
                target.Set(RpcArguments.String(arguments["name"]), RpcArguments.Union(arguments["value"], handles, ["Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEndpoint", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource"]));
                return null;
            }
            case "Aspire.Hosting.Native.Authoring/waitFor":
            {
                RpcArguments.Validate(arguments, ["context", "dependency"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WaitFor(handles.Get<RpcResource>(arguments["dependency"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource"));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withArgs":
            {
                RpcArguments.Validate(arguments, ["context", "args"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithArgs(RpcArguments.Strings(arguments["args"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withArgsCallback":
            {
                RpcArguments.Validate(arguments, ["context", "callback"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                var result = await target.WithArgsCallback(connection.CreateAuthoringCallback<RpcArgsEditor>(callbackConnection, RpcArguments.String(arguments["callback"]), "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcArgsEditor")).ConfigureAwait(false);
                return connection.PublishCoreHandle(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withConnectionString":
            {
                RpcArguments.Validate(arguments, ["context", "value"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithConnectionString(RpcArguments.Union(arguments["value"], handles, ["Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEndpoint", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withEndpoint":
            {
                RpcArguments.Validate(arguments, ["context", "options"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithEndpoint(RpcArguments.Dto(arguments["options"], NativeRpcJsonContext.Default.RpcEndpointOptions));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withEnvironment":
            {
                RpcArguments.Validate(arguments, ["context", "name", "value"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithEnvironment(RpcArguments.String(arguments["name"]), RpcArguments.Union(arguments["value"], handles, ["Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.DeclaredValue", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEndpoint", "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withEnvironmentCallback":
            {
                RpcArguments.Validate(arguments, ["context", "callback"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                var result = await target.WithEnvironmentCallback(connection.CreateAuthoringCallback<RpcEnvironmentEditor>(callbackConnection, RpcArguments.String(arguments["callback"]), "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcEnvironmentEditor")).ConfigureAwait(false);
                return connection.PublishCoreHandle(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withImageTag":
            {
                RpcArguments.Validate(arguments, ["context", "tag"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithImageTag(RpcArguments.String(arguments["tag"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withReference":
            {
                RpcArguments.Validate(arguments, ["context", "source"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithReference(handles.Get<RpcResource>(arguments["source"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource"));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Authoring/withSerializedAnnotation":
            {
                RpcArguments.Validate(arguments, ["context", "annotationId", "json"]);
                var target = handles.Get<RpcResource>(arguments["context"], "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
                handles.EnsureCapacity();
                var result = target.WithSerializedAnnotation(RpcArguments.String(arguments["annotationId"]), RpcArguments.String(arguments["json"]));
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Authoring.RpcResource");
            }
            case "Aspire.Hosting.Native.Server/createSession":
            {
                RpcArguments.Validate(arguments, []);
                handles.EnsureCapacity();
                var result = server.OpenApplication();
                return handles.Add(result, "Aspire.Hosting.Native.Server/Aspire.Hosting.Native.Api.CompositionSession");
            }
            default: throw RpcFault.CapabilityNotFound("The capability is not implemented.");
        }
        }
        catch (SymbolicValueException exception)
        {
            throw new RpcFault(exception.Code, exception.Message);
        }
        catch (Aspire.Hosting.Native.Runtime.ExecutionPlanException exception)
        {
            // This diagnostic contains only validated resource names and
            // milestone names, never callback exceptions or launch inputs.
            throw new RpcFault("EXECUTION_PREREQUISITE_CYCLE", exception.Message);
        }
    }
}
[JsonSerializable(typeof(ApplicationObservations))]
[JsonSerializable(typeof(CompositionSnapshot))]
[JsonSerializable(typeof(ContainerLaunch))]
[JsonSerializable(typeof(ContainerWorkloadLaunch))]
[JsonSerializable(typeof(DeclarationSnapshot))]
[JsonSerializable(typeof(ExecutableLaunch))]
[JsonSerializable(typeof(ExecutableWorkloadLaunch))]
[JsonSerializable(typeof(PendingConfirmations))]
[JsonSerializable(typeof(PendingResourceCommands))]
[JsonSerializable(typeof(ResourceConfiguration))]
[JsonSerializable(typeof(ResourceConfigurationRevision))]
[JsonSerializable(typeof(ResourceLogs))]
[JsonSerializable(typeof(ResourceObservation))]
[JsonSerializable(typeof(RuntimeOperationResult))]
[JsonSerializable(typeof(StartedWorkload))]
[JsonSerializable(typeof(SymbolicConfigurationSnapshot))]
[JsonSerializable(typeof(SymbolicLaunchBindings))]
[JsonSerializable(typeof(WorkloadAllocation))]
[JsonSerializable(typeof(WorkloadEndpointDeclaration))]
[JsonSerializable(typeof(RpcEndpointOptions))]
[JsonSourceGenerationOptions(PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase, UnmappedMemberHandling = JsonUnmappedMemberHandling.Disallow, RespectNullableAnnotations = true)]
internal sealed partial class NativeRpcJsonContext : JsonSerializerContext;