Exemplo n.º 1
0
 public ResourceType(ResourceTypeReference typeReference, ITypeReference body, TypeSymbolValidationFlags validationFlags)
     : base(typeReference.FormatName())
 {
     TypeReference   = typeReference;
     Body            = body;
     ValidationFlags = validationFlags;
 }
Exemplo n.º 2
0
 public ResourceType(ResourceTypeReference typeReference, ResourceScope validParentScopes, ITypeReference body)
     : base(typeReference.FormatName())
 {
     TypeReference     = typeReference;
     ValidParentScopes = validParentScopes;
     Body = body;
 }
Exemplo n.º 3
0
        public ResourceType GetType(ResourceTypeReference reference, ResourceTypeGenerationFlags flags)
        {
            var bodyType     = new ObjectType(reference.FormatName(), TypeSymbolValidationFlags.Default, LanguageConstants.CreateResourceProperties(reference), null);
            var resourceType = new ResourceType(reference, ResourceScope.Tenant | ResourceScope.ManagementGroup | ResourceScope.Subscription | ResourceScope.ResourceGroup | ResourceScope.Resource, bodyType);

            return(AzResourceTypeProvider.SetBicepResourceProperties(resourceType, flags));
        }
Exemplo n.º 4
0
 public ResourceType(NamespaceType declaringNamespace, ResourceTypeReference typeReference, ResourceScope validParentScopes, ITypeReference body)
     : base(typeReference.FormatName())
 {
     DeclaringNamespace = declaringNamespace;
     TypeReference      = typeReference;
     ValidParentScopes  = validParentScopes;
     Body = body;
 }
Exemplo n.º 5
0
 public ResourceType(NamespaceType declaringNamespace, ResourceTypeReference typeReference, ResourceScope validParentScopes, ITypeReference body, ImmutableHashSet <string> uniqueIdentifierProperties)
     : base(typeReference.FormatName())
 {
     DeclaringNamespace = declaringNamespace;
     TypeReference      = typeReference;
     ValidParentScopes  = validParentScopes;
     Body = body;
     UniqueIdentifierProperties = uniqueIdentifierProperties;
 }
Exemplo n.º 6
0
        public ResourceType GetType(ResourceTypeReference typeReference)
        {
            var resourceType = TryGetResource(typeReference);

            if (resourceType != null)
            {
                return(resourceType);
            }

            // TODO move default definition into types assembly
            return(new ResourceType(typeReference, new NamedObjectType(typeReference.FormatName(), TypeSymbolValidationFlags.Default, LanguageConstants.CreateResourceProperties(typeReference), null), TypeSymbolValidationFlags.Default));
        }
Exemplo n.º 7
0
        private ResourceType GenerateResourceType(ResourceTypeReference typeReference, bool isExistingResource)
        {
            if (availableResourceTypes.TryGetValue(typeReference, out var typeLocation))
            {
                var serializedResourceType = typeLoader.LoadResourceType(typeLocation);
                var resourceType           = resourceTypeFactory.GetResourceType(serializedResourceType);

                return(SetBicepResourceProperties(resourceType, isExistingResource));
            }
            else
            {
                var resourceBodyType = new NamedObjectType(typeReference.FormatName(), TypeSymbolValidationFlags.Default, LanguageConstants.CreateResourceProperties(typeReference), null);
                var resourceType     = new ResourceType(typeReference, ResourceScope.Tenant | ResourceScope.ManagementGroup | ResourceScope.Subscription | ResourceScope.ResourceGroup | ResourceScope.Resource, resourceBodyType);

                return(SetBicepResourceProperties(resourceType, isExistingResource));
            }
        }
Exemplo n.º 8
0
        public ResourceType GetType(ResourceTypeReference typeReference)
        {
            if (loadedTypeCache.TryGetValue(typeReference, out var resourceType))
            {
                return(resourceType);
            }

            if (availableResourceTypes.TryGetValue(typeReference, out var typeLocation))
            {
                // It's important to cache this result because LoadResourceType is an expensive operation, and
                // duplicating types means the resourceTypeFactor won't be able to use its cache.
                var serializedResourceType = typeLoader.LoadResourceType(typeLocation);
                resourceType = resourceTypeFactory.GetResourceType(serializedResourceType);
            }
            else
            {
                resourceType = new ResourceType(typeReference, new NamedObjectType(typeReference.FormatName(), TypeSymbolValidationFlags.Default, LanguageConstants.CreateResourceProperties(typeReference), null), TypeSymbolValidationFlags.Default);
            }

            loadedTypeCache[typeReference] = resourceType;
            return(resourceType);
        }
Exemplo n.º 9
0
 public Diagnostic ResourceTypesUnavailable(ResourceTypeReference resourceTypeReference) => new Diagnostic(
     TextSpan,
     DiagnosticLevel.Warning,
     "BCP081",
     $"Resource type \"{resourceTypeReference.FormatName()}\" does not have types available.");
Exemplo n.º 10
0
 public ResourceType(ResourceTypeReference typeReference, ITypeReference body)
     : base(typeReference.FormatName())
 {
     TypeReference = typeReference;
     Body          = body;
 }
Exemplo n.º 11
0
 public ResourceType GetType(ResourceTypeReference reference)
 => new ResourceType(reference, new NamedObjectType(reference.FormatName(), TypeSymbolValidationFlags.Default, LanguageConstants.CreateResourceProperties(reference), null), TypeSymbolValidationFlags.Default);
Exemplo n.º 12
0
 public ResourceType GetType(ResourceTypeReference reference)
 => new ResourceType(reference, new NamedObjectType(reference.FormatName(), LanguageConstants.CreateResourceProperties(reference), null));
Exemplo n.º 13
0
 public ResourceType(ResourceTypeReference typeReference, IEnumerable <TypeProperty> properties, ITypeReference?additionalPropertiesType = null)
     : base(typeReference.FormatName(), properties, additionalPropertiesType)
 {
     TypeReference = typeReference;
 }