private static PutNamedValueInApim GetPutNamedValueInApim()

in tools/code/publisher/NamedValue.cs [163:183]


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

        return async (name, dto, 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} is secret, but no value or keyvault identifier was specified. Skipping it...", name);
                return;
            }

            logger.LogInformation("Putting named value {NamedValueName}...", name);

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