private static PutWorkspaceNamedValueInApim GetPutWorkspaceNamedValueInApim()

in tools/code/publisher/WorkspaceNamedValue.cs [157:177]


    private static PutWorkspaceNamedValueInApim GetPutWorkspaceNamedValueInApim(IServiceProvider provider)
    {
        var serviceUri = provider.GetRequiredService<ManagementServiceUri>();
        var pipeline = provider.GetRequiredService<HttpPipeline>();
        var logger = provider.GetRequiredService<ILogger>();

        return async (name, dto, workspaceName, cancellationToken) =>
        {
            // Don't put secret named values without a value or keyvault identifier
            if (dto.Properties.Secret is true && dto.Properties.Value is null && dto.Properties.KeyVault?.SecretIdentifier is null)
            {
                logger.LogWarning("Named value {NamedValueName} in workspace {WorkspaceName} is secret, but no value or keyvault identifier was specified. Skipping it...", name, workspaceName);
                return;
            }

            logger.LogInformation("Adding named value {NamedValueName} to workspace {WorkspaceName}...", name, workspaceName);

            await WorkspaceNamedValueUri.From(name, workspaceName, serviceUri)
                                        .PutDto(dto, pipeline, cancellationToken);
        };
    }