/// <summary>
        ///     Initializes a new instance of the <see cref="AzureResourceRepository" /> class.
        /// </summary>
        public AzureResourceRepository(IAzureResourceGraph azureResourceGraph, IOptionsMonitor <ResourceDeclaration> resourceDeclarationMonitor, ILogger <AzureResourceRepository> logger)
        {
            Guard.NotNull(resourceDeclarationMonitor, nameof(resourceDeclarationMonitor));
            Guard.NotNull(azureResourceGraph, nameof(azureResourceGraph));
            Guard.NotNull(logger, nameof(logger));

            _logger                     = logger;
            _azureResourceGraph         = azureResourceGraph;
            _resourceDeclarationMonitor = resourceDeclarationMonitor;
        }
        public CachedAzureResourceGraph(IAzureResourceGraph azureResourceGraph, IMemoryCache memoryCache, IOptionsMonitor <CacheConfiguration> cacheConfiguration)
        {
            Guard.NotNull(cacheConfiguration, nameof(cacheConfiguration));
            Guard.NotNull(azureResourceGraph, nameof(azureResourceGraph));
            Guard.NotNull(memoryCache, nameof(memoryCache));

            _memoryCache        = memoryCache;
            _azureResourceGraph = azureResourceGraph;
            _cacheConfiguration = cacheConfiguration;
        }