├── .github ├── codeql │ └── codeql-config.yml └── workflows │ ├── build.yml │ └── codeql-analysis.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── assets ├── AzureDesignStudio.gif ├── AzureDesignStudioV1.gif └── ads.png └── src ├── .dockerignore ├── AzureDesignStudio.AzureResources ├── ApiManagement │ ├── AdditionalLocation.cs │ ├── ApiManagementServiceBasePropertiesCustomProperties.cs │ ├── ApiManagementServiceIdentity.cs │ ├── ApiManagementServiceIdentityUserAssignedIdentities.cs │ ├── ApiManagementServiceProperties.cs │ ├── ApiManagementServiceSkuProperties.cs │ ├── ApiVersionConstraint.cs │ ├── ArmIdWrapper.cs │ ├── CertificateConfiguration.cs │ ├── CertificateInformation.cs │ ├── HostnameConfiguration.cs │ ├── PrivateEndpointConnectionWrapperProperties.cs │ ├── PrivateLinkServiceConnectionState.cs │ ├── RemotePrivateEndpointConnectionWrapper.cs │ ├── Service.cs │ ├── SystemData.cs │ └── VirtualNetworkConfiguration.cs ├── AzureDesignStudio.AzureResources.csproj ├── Base │ ├── ARMResourceBase.cs │ ├── AzureResourceAttribute.cs │ ├── AzureResourceHelper.cs │ ├── DeploymentTemplate.cs │ ├── FunctionMember.cs │ ├── FunctionNamespace.cs │ ├── FunctionOutput.cs │ ├── FunctionParameter.cs │ ├── KeyVaultReference.cs │ ├── Output.cs │ ├── OutputCopy.cs │ ├── Parameter.cs │ ├── ResourceBase.cs │ └── ResourceCopy.cs ├── Compute │ ├── AdditionalCapabilities.cs │ ├── AdditionalUnattendContent.cs │ ├── ApiError.cs │ ├── ApiErrorBase.cs │ ├── ApplicationProfile.cs │ ├── AvailablePatchSummary.cs │ ├── BillingProfile.cs │ ├── BootDiagnostics.cs │ ├── BootDiagnosticsInstanceView.cs │ ├── CapacityReservationProfile.cs │ ├── DataDisk.cs │ ├── DiagnosticsProfile.cs │ ├── DiffDiskSettings.cs │ ├── DiskEncryptionSetParameters.cs │ ├── DiskEncryptionSettings.cs │ ├── DiskInstanceView.cs │ ├── ExtendedLocation.cs │ ├── HardwareProfile.cs │ ├── ImageReference.cs │ ├── InnerError.cs │ ├── InstanceViewStatus.cs │ ├── KeyVaultKeyReference.cs │ ├── KeyVaultSecretReference.cs │ ├── LastPatchInstallationSummary.cs │ ├── LinuxConfiguration.cs │ ├── LinuxPatchSettings.cs │ ├── LinuxVMGuestPatchAutomaticByPlatformSettings.cs │ ├── MaintenanceRedeployStatus.cs │ ├── ManagedDiskParameters.cs │ ├── NetworkInterfaceReference.cs │ ├── NetworkInterfaceReferenceProperties.cs │ ├── NetworkProfile.cs │ ├── OSDisk.cs │ ├── OSProfile.cs │ ├── PatchSettings.cs │ ├── Plan.cs │ ├── PublicIPAddressSku.cs │ ├── ResourceWithOptionalLocationTags.cs │ ├── ScheduledEventsProfile.cs │ ├── SecurityProfile.cs │ ├── SshConfiguration.cs │ ├── SshPublicKey.cs │ ├── StorageProfile.cs │ ├── SubResource.cs │ ├── TerminateNotificationProfile.cs │ ├── UefiSettings.cs │ ├── UserAssignedIdentities.cs │ ├── VMDiskSecurityProfile.cs │ ├── VMGalleryApplication.cs │ ├── VMSizeProperties.cs │ ├── VaultCertificate.cs │ ├── VaultSecretGroup.cs │ ├── VirtualHardDisk.cs │ ├── VirtualMachineAgentInstanceView.cs │ ├── VirtualMachineExtension.cs │ ├── VirtualMachineExtensionHandlerInstanceView.cs │ ├── VirtualMachineExtensionInstanceView.cs │ ├── VirtualMachineExtensionProperties.cs │ ├── VirtualMachineHealthStatus.cs │ ├── VirtualMachineIdentity.cs │ ├── VirtualMachineInstanceView.cs │ ├── VirtualMachineIpTag.cs │ ├── VirtualMachineNetworkInterfaceConfiguration.cs │ ├── VirtualMachineNetworkInterfaceConfigurationProperties.cs │ ├── VirtualMachineNetworkInterfaceDnsSettingsConfiguration.cs │ ├── VirtualMachineNetworkInterfaceIPConfiguration.cs │ ├── VirtualMachineNetworkInterfaceIPConfigurationProperties.cs │ ├── VirtualMachinePatchStatus.cs │ ├── VirtualMachineProperties.cs │ ├── VirtualMachinePublicIPAddressConfiguration.cs │ ├── VirtualMachinePublicIPAddressConfigurationProperties.cs │ ├── VirtualMachinePublicIPAddressDnsSettingsConfiguration.cs │ ├── VirtualMachines.cs │ ├── WinRMConfiguration.cs │ ├── WinRMListener.cs │ ├── WindowsConfiguration.cs │ └── WindowsVMGuestPatchAutomaticByPlatformSettings.cs ├── Network │ ├── AddressSpace.cs │ ├── ApplicationGatewayAuthenticationCertificate.cs │ ├── ApplicationGatewayAuthenticationCertificatePropertiesFormat.cs │ ├── ApplicationGatewayAutoscaleConfiguration.cs │ ├── ApplicationGatewayBackendAddress.cs │ ├── ApplicationGatewayBackendAddressPool.cs │ ├── ApplicationGatewayBackendAddressPoolPropertiesFormat.cs │ ├── ApplicationGatewayBackendHttpSettings.cs │ ├── ApplicationGatewayBackendHttpSettingsPropertiesFormat.cs │ ├── ApplicationGatewayBackendSettings.cs │ ├── ApplicationGatewayBackendSettingsPropertiesFormat.cs │ ├── ApplicationGatewayClientAuthConfiguration.cs │ ├── ApplicationGatewayConnectionDraining.cs │ ├── ApplicationGatewayCustomError.cs │ ├── ApplicationGatewayFirewallDisabledRuleGroup.cs │ ├── ApplicationGatewayFirewallExclusion.cs │ ├── ApplicationGatewayFrontendIPConfiguration.cs │ ├── ApplicationGatewayFrontendIPConfigurationPropertiesFormat.cs │ ├── ApplicationGatewayFrontendPort.cs │ ├── ApplicationGatewayFrontendPortPropertiesFormat.cs │ ├── ApplicationGatewayGlobalConfiguration.cs │ ├── ApplicationGatewayHeaderConfiguration.cs │ ├── ApplicationGatewayHttpListener.cs │ ├── ApplicationGatewayHttpListenerPropertiesFormat.cs │ ├── ApplicationGatewayIPConfiguration.cs │ ├── ApplicationGatewayIPConfigurationPropertiesFormat.cs │ ├── ApplicationGatewayListener.cs │ ├── ApplicationGatewayListenerPropertiesFormat.cs │ ├── ApplicationGatewayLoadDistributionPolicy.cs │ ├── ApplicationGatewayLoadDistributionPolicyPropertiesFormat.cs │ ├── ApplicationGatewayLoadDistributionTarget.cs │ ├── ApplicationGatewayLoadDistributionTargetPropertiesFormat.cs │ ├── ApplicationGatewayPathRule.cs │ ├── ApplicationGatewayPathRulePropertiesFormat.cs │ ├── ApplicationGatewayPrivateEndpointConnection.cs │ ├── ApplicationGatewayPrivateEndpointConnectionProperties.cs │ ├── ApplicationGatewayPrivateLinkConfiguration.cs │ ├── ApplicationGatewayPrivateLinkConfigurationProperties.cs │ ├── ApplicationGatewayPrivateLinkIpConfiguration.cs │ ├── ApplicationGatewayPrivateLinkIpConfigurationProperties.cs │ ├── ApplicationGatewayProbe.cs │ ├── ApplicationGatewayProbeHealthResponseMatch.cs │ ├── ApplicationGatewayProbePropertiesFormat.cs │ ├── ApplicationGatewayPropertiesFormat.cs │ ├── ApplicationGatewayRedirectConfiguration.cs │ ├── ApplicationGatewayRedirectConfigurationPropertiesFormat.cs │ ├── ApplicationGatewayRequestRoutingRule.cs │ ├── ApplicationGatewayRequestRoutingRulePropertiesFormat.cs │ ├── ApplicationGatewayRewriteRule.cs │ ├── ApplicationGatewayRewriteRuleActionSet.cs │ ├── ApplicationGatewayRewriteRuleCondition.cs │ ├── ApplicationGatewayRewriteRuleSet.cs │ ├── ApplicationGatewayRewriteRuleSetPropertiesFormat.cs │ ├── ApplicationGatewayRoutingRule.cs │ ├── ApplicationGatewayRoutingRulePropertiesFormat.cs │ ├── ApplicationGatewaySku.cs │ ├── ApplicationGatewaySslCertificate.cs │ ├── ApplicationGatewaySslCertificatePropertiesFormat.cs │ ├── ApplicationGatewaySslPolicy.cs │ ├── ApplicationGatewaySslProfile.cs │ ├── ApplicationGatewaySslProfilePropertiesFormat.cs │ ├── ApplicationGatewayTrustedClientCertificate.cs │ ├── ApplicationGatewayTrustedClientCertificatePropertiesFormat.cs │ ├── ApplicationGatewayTrustedRootCertificate.cs │ ├── ApplicationGatewayTrustedRootCertificatePropertiesFormat.cs │ ├── ApplicationGatewayUrlConfiguration.cs │ ├── ApplicationGatewayUrlPathMap.cs │ ├── ApplicationGatewayUrlPathMapPropertiesFormat.cs │ ├── ApplicationGatewayWebApplicationFirewallConfiguration.cs │ ├── ApplicationGateways.cs │ ├── ApplicationSecurityGroup.cs │ ├── ApplicationSecurityGroupPropertiesFormat.cs │ ├── AzureFirewallAdditionalProperties.cs │ ├── AzureFirewallApplicationRule.cs │ ├── AzureFirewallApplicationRuleCollection.cs │ ├── AzureFirewallApplicationRuleCollectionPropertiesFormat.cs │ ├── AzureFirewallApplicationRuleProtocol.cs │ ├── AzureFirewallIPConfiguration.cs │ ├── AzureFirewallIPConfigurationPropertiesFormat.cs │ ├── AzureFirewallIpGroups.cs │ ├── AzureFirewallNatRCAction.cs │ ├── AzureFirewallNatRule.cs │ ├── AzureFirewallNatRuleCollection.cs │ ├── AzureFirewallNatRuleCollectionProperties.cs │ ├── AzureFirewallNetworkRule.cs │ ├── AzureFirewallNetworkRuleCollection.cs │ ├── AzureFirewallNetworkRuleCollectionPropertiesFormat.cs │ ├── AzureFirewallPropertiesFormat.cs │ ├── AzureFirewallPublicIPAddress.cs │ ├── AzureFirewallRCAction.cs │ ├── AzureFirewallSku.cs │ ├── AzureFirewalls.cs │ ├── BackendAddressPool.cs │ ├── BackendAddressPoolPropertiesFormat.cs │ ├── BastionHostIPConfiguration.cs │ ├── BastionHostIPConfigurationPropertiesFormat.cs │ ├── BastionHostPropertiesFormat.cs │ ├── BastionHosts.cs │ ├── CustomDnsConfigPropertiesFormat.cs │ ├── DdosSettings.cs │ ├── Delegation.cs │ ├── DhcpOptions.cs │ ├── DnsSettings.cs │ ├── ExplicitProxy.cs │ ├── ExtendedLocation.cs │ ├── FirewallPolicies.cs │ ├── FirewallPolicyCertificateAuthority.cs │ ├── FirewallPolicyInsights.cs │ ├── FirewallPolicyIntrusionDetection.cs │ ├── FirewallPolicyIntrusionDetectionBypassTrafficSpecifications.cs │ ├── FirewallPolicyIntrusionDetectionConfiguration.cs │ ├── FirewallPolicyIntrusionDetectionSignatureSpecification.cs │ ├── FirewallPolicyLogAnalyticsResources.cs │ ├── FirewallPolicyLogAnalyticsWorkspace.cs │ ├── FirewallPolicyPropertiesFormat.cs │ ├── FirewallPolicySQL.cs │ ├── FirewallPolicySku.cs │ ├── FirewallPolicySnat.cs │ ├── FirewallPolicyThreatIntelWhitelist.cs │ ├── FirewallPolicyTransportSecurity.cs │ ├── FlowLog.cs │ ├── FlowLogFormatParameters.cs │ ├── FlowLogPropertiesFormat.cs │ ├── FrontendIPConfiguration.cs │ ├── FrontendIPConfigurationPropertiesFormat.cs │ ├── GatewayLoadBalancerTunnelInterface.cs │ ├── HubIPAddresses.cs │ ├── HubPublicIPAddresses.cs │ ├── IPConfiguration.cs │ ├── IPConfigurationProfile.cs │ ├── IPConfigurationProfilePropertiesFormat.cs │ ├── IPConfigurationPropertiesFormat.cs │ ├── InboundNatRule.cs │ ├── InboundNatRulePropertiesFormat.cs │ ├── IpTag.cs │ ├── LoadBalancerBackendAddress.cs │ ├── LoadBalancerBackendAddressPropertiesFormat.cs │ ├── ManagedServiceIdentity.cs │ ├── ManagedServiceIdentityUserAssignedIdentities.cs │ ├── NatGateway.cs │ ├── NatGatewayPropertiesFormat.cs │ ├── NatGatewaySku.cs │ ├── NatRulePortMapping.cs │ ├── NetworkInterface.cs │ ├── NetworkInterfaceDnsSettings.cs │ ├── NetworkInterfaceIPConfiguration.cs │ ├── NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties.cs │ ├── NetworkInterfaceIPConfigurationPropertiesFormat.cs │ ├── NetworkInterfacePropertiesFormat.cs │ ├── NetworkInterfaceTapConfiguration.cs │ ├── NetworkInterfaceTapConfigurationPropertiesFormat.cs │ ├── NetworkSecurityGroup.cs │ ├── NetworkSecurityGroupPropertiesFormat.cs │ ├── PrivateEndpoint.cs │ ├── PrivateEndpointConnection.cs │ ├── PrivateEndpointConnectionProperties.cs │ ├── PrivateEndpointIPConfiguration.cs │ ├── PrivateEndpointIPConfigurationProperties.cs │ ├── PrivateEndpointProperties.cs │ ├── PrivateLinkService.cs │ ├── PrivateLinkServiceConnection.cs │ ├── PrivateLinkServiceConnectionProperties.cs │ ├── PrivateLinkServiceConnectionState.cs │ ├── PrivateLinkServiceIpConfiguration.cs │ ├── PrivateLinkServiceIpConfigurationProperties.cs │ ├── PrivateLinkServiceProperties.cs │ ├── PrivateLinkServicePropertiesAutoApproval.cs │ ├── PrivateLinkServicePropertiesVisibility.cs │ ├── PublicIPAddress.cs │ ├── PublicIPAddressDnsSettings.cs │ ├── PublicIPAddressPropertiesFormat.cs │ ├── PublicIPAddressSku.cs │ ├── PublicIPAddresses.cs │ ├── ResourceNavigationLink.cs │ ├── ResourceNavigationLinkFormat.cs │ ├── RetentionPolicyParameters.cs │ ├── Route.cs │ ├── RoutePropertiesFormat.cs │ ├── RouteTable.cs │ ├── RouteTablePropertiesFormat.cs │ ├── SecurityRule.cs │ ├── SecurityRulePropertiesFormat.cs │ ├── ServiceAssociationLink.cs │ ├── ServiceAssociationLinkPropertiesFormat.cs │ ├── ServiceDelegationPropertiesFormat.cs │ ├── ServiceEndpointPolicy.cs │ ├── ServiceEndpointPolicyDefinition.cs │ ├── ServiceEndpointPolicyDefinitionPropertiesFormat.cs │ ├── ServiceEndpointPolicyPropertiesFormat.cs │ ├── ServiceEndpointPropertiesFormat.cs │ ├── Sku.cs │ ├── SubResource.cs │ ├── Subnet.cs │ ├── SubnetPropertiesFormat.cs │ ├── Subnets.cs │ ├── TrafficAnalyticsConfigurationProperties.cs │ ├── TrafficAnalyticsProperties.cs │ ├── VirtualNetworkBgpCommunities.cs │ ├── VirtualNetworkEncryption.cs │ ├── VirtualNetworkPeering.cs │ ├── VirtualNetworkPeeringPropertiesFormat.cs │ ├── VirtualNetworkPeerings.cs │ ├── VirtualNetworkPropertiesFormat.cs │ ├── VirtualNetworkTap.cs │ ├── VirtualNetworkTapPropertiesFormat.cs │ └── VirtualNetworks.cs ├── Sql │ ├── DatabaseIdentity.cs │ ├── DatabaseIdentityUserAssignedIdentities.cs │ ├── DatabaseProperties.cs │ ├── Databases.cs │ ├── PrivateEndpointConnectionProperties.cs │ ├── PrivateEndpointProperty.cs │ ├── PrivateLinkServiceConnectionStateProperty.cs │ ├── ResourceIdentity.cs │ ├── ResourceIdentityUserAssignedIdentities.cs │ ├── ServerExternalAdministrator.cs │ ├── ServerPrivateEndpointConnection.cs │ ├── ServerProperties.cs │ ├── Servers.cs │ └── Sku.cs ├── Storage │ ├── AccountImmutabilityPolicyProperties.cs │ ├── ActiveDirectoryProperties.cs │ ├── AzureFilesIdentityBasedAuthentication.cs │ ├── BlobRestoreParameters.cs │ ├── BlobRestoreRange.cs │ ├── BlobRestoreStatus.cs │ ├── CustomDomain.cs │ ├── Encryption.cs │ ├── EncryptionIdentity.cs │ ├── EncryptionService.cs │ ├── EncryptionServices.cs │ ├── Endpoints.cs │ ├── ExtendedLocation.cs │ ├── GeoReplicationStats.cs │ ├── IPRule.cs │ ├── Identity.cs │ ├── IdentityUserAssignedIdentities.cs │ ├── ImmutableStorageAccount.cs │ ├── KeyCreationTime.cs │ ├── KeyPolicy.cs │ ├── KeyVaultProperties.cs │ ├── NetworkRuleSet.cs │ ├── PrivateEndpoint.cs │ ├── PrivateEndpointConnection.cs │ ├── PrivateEndpointConnectionProperties.cs │ ├── PrivateLinkServiceConnectionState.cs │ ├── ResourceAccessRule.cs │ ├── RoutingPreference.cs │ ├── SasPolicy.cs │ ├── Sku.cs │ ├── StorageAccountInternetEndpoints.cs │ ├── StorageAccountMicrosoftEndpoints.cs │ ├── StorageAccountPropertiesCreateParametersOrStorageAccountProperties.cs │ ├── StorageAccountSkuConversionStatus.cs │ ├── StorageAccounts.cs │ └── VirtualNetworkRule.cs └── Web │ ├── ApiDefinitionInfo.cs │ ├── ApiManagementConfig.cs │ ├── AppServicePlanProperties.cs │ ├── AutoHealActions.cs │ ├── AutoHealCustomAction.cs │ ├── AutoHealRules.cs │ ├── AutoHealTriggers.cs │ ├── Capability.cs │ ├── CloningInfo.cs │ ├── CloningInfoAppSettingsOverrides.cs │ ├── ConnStringInfo.cs │ ├── CorsSettings.cs │ ├── Experiments.cs │ ├── ExtendedLocation.cs │ ├── HandlerMapping.cs │ ├── HostNameSslState.cs │ ├── HostingEnvironmentProfile.cs │ ├── IpSecurityRestriction.cs │ ├── IpSecurityRestrictionHeaders.cs │ ├── KubeEnvironmentProfile.cs │ ├── ManagedServiceIdentity.cs │ ├── ManagedServiceIdentityUserAssignedIdentities.cs │ ├── NameValuePair.cs │ ├── NetworkConfig.cs │ ├── PushSettings.cs │ ├── PushSettingsProperties.cs │ ├── RampUpRule.cs │ ├── RequestsBasedTrigger.cs │ ├── Serverfarms.cs │ ├── SiteConfig.cs │ ├── SiteConfigAzureStorageAccounts.cs │ ├── SiteLimits.cs │ ├── SiteMachineKey.cs │ ├── SiteProperties.cs │ ├── Sites.cs │ ├── SkuCapacity.cs │ ├── SkuDescription.cs │ ├── SlotSwapStatus.cs │ ├── SlowRequestsBasedTrigger.cs │ ├── StatusCodesBasedTrigger.cs │ ├── StatusCodesRangeBasedTrigger.cs │ ├── SwiftVirtualNetworkProperties.cs │ ├── VirtualApplication.cs │ └── VirtualDirectory.cs ├── AzureDesignStudio.Core.Tests ├── ApiMTests.cs ├── AzureDesignStudio.Core.Tests.csproj ├── NetworkTests.cs ├── SqlDatabaseTests.cs ├── TestBase.cs └── WebTests.cs ├── AzureDesignStudio.Core ├── APIM │ ├── APIMForm.razor │ └── APIMModel.cs ├── Attributes │ └── MapToDtoAttribute.cs ├── AzureDesignStudio.Core.csproj ├── Common │ ├── AdsConstants.cs │ └── ResourceBaseJsonConverter.cs ├── Components │ ├── AzureGroupComponent.razor │ ├── AzureGroupComponent.razor.css │ ├── AzureNodeComponent.razor │ ├── AzureNodeComponent.razor.css │ └── NameAndLocation.razor ├── Compute │ ├── VirtualMachineForm.razor │ └── VirtualMachineModel.cs ├── DTO │ ├── AzureNodeDto.cs │ ├── AzureNodeProfile.cs │ ├── DiagramGraph.cs │ └── LinkModelDto.cs ├── DataModelFactory.cs ├── Models │ ├── ArmTemplate.cs │ ├── AzureGroupBase.cs │ ├── AzureNodeBase.cs │ ├── AzureRegions.cs │ ├── IArmTemplate.cs │ ├── IAzureNode.cs │ └── IAzureResource.cs ├── Network │ ├── AppGatewayForm.razor │ ├── AppGatewayModel.cs │ ├── AzureFirewallForm.razor │ ├── AzureFirewallModel.cs │ ├── BastionsForm.razor │ ├── BastionsModel.cs │ ├── FirewallPolicyModel.cs │ ├── PublicIpForm.razor │ ├── PublicIpModel.cs │ ├── SubnetModel.cs │ ├── VirtualNetworkForm.razor │ ├── VirtualNetworkModel.cs │ ├── VirtualNetworkPeeringModel.cs │ └── VirtualNetworkPort.cs ├── SQL │ ├── SqlDatabaseForm.razor │ ├── SqlDatabaseModel.cs │ ├── SqlServerForm.razor │ └── SqlServerModel.cs ├── Storage │ ├── StorageAccountForm.razor │ └── StorageAccountModel.cs ├── Web │ ├── AppServicePlanForm.razor │ ├── AppServicePlanModel.cs │ ├── FunctionAppForm.razor │ ├── FunctionAppForm.razor.cs │ ├── FunctionAppModel.cs │ ├── WebAppForm.razor │ ├── WebAppForm.razor.cs │ └── WebAppModel.cs └── _Imports.razor ├── AzureDesignStudio.Server ├── .config │ └── dotnet-tools.json ├── AzureDesignStudio.Server.csproj ├── Dockerfile ├── Models │ └── DesignDbContext.cs ├── Pages │ ├── Error.cshtml │ └── Error.cshtml.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Services │ ├── CryptoService.cs │ ├── DeployService.cs │ ├── DesignService.cs │ └── ServiceTools.cs ├── Utils │ └── AdsTelemetryInitializer.cs └── appsettings.json ├── AzureDesignStudio.SharedModels ├── AzureDesignStudio.SharedModels.csproj ├── deploy_model.proto └── design_view_model.proto ├── AzureDesignStudio.SourceGeneration ├── AzureDesignStudio.SourceGeneration.csproj ├── AzureNodeDtoGenerator.cs ├── DtoGeneratorSyntaxReceiver.cs ├── Models │ ├── DtoTypeModel.cs │ └── MapProfileModel.cs ├── Properties │ └── launchSettings.json ├── ResourceReader.cs ├── RoslynExtensions.cs └── Templates │ ├── AzureNodeDto.scriban │ ├── AzureNodeProfile.scriban │ └── DataModelFactory.scriban ├── AzureDesignStudio.sln ├── AzureDesignStudio ├── App.razor ├── AzureDesignStudio.csproj ├── Components │ ├── DiagramPanel.razor │ ├── DiagramPanel.razor.cs │ ├── DiagramPanel.razor.css │ ├── IconComponent.razor │ ├── MenuDrawer │ │ ├── AzSubscriptionDrawerTemplate.razor │ │ ├── CodeDrawerTemplate.razor │ │ ├── CodeDrawerTemplate.razor.cs │ │ ├── ExportDrawerTemplate.razor │ │ ├── SaveDrawerTemplate.razor │ │ ├── SaveDrawerTemplate.razor.cs │ │ └── UserDrawerTemplate.razor │ ├── NodeDrawerTemplate.razor │ ├── OneButtonModalFooter.razor │ ├── Stencil.razor │ ├── Stencil.razor.css │ ├── StencilPanel.razor │ ├── StencilPanel.razor.css │ ├── TopMenu.razor │ ├── TopMenu.razor.cs │ └── TopMenu.razor.css ├── Models │ ├── CodeDrawerContent.cs │ ├── DeploymentParameters.cs │ ├── StencilModel.cs │ └── WindowSize.cs ├── Pages │ ├── Index.razor │ └── Index.razor.css ├── Program.cs ├── Properties │ └── launchSettings.json ├── Services │ ├── AdsBicepDecompiler.cs │ ├── AdsContext.cs │ ├── DeployGrpcService.cs │ ├── DesignGrpcService.cs │ └── IServiceCollectionExtensions.cs ├── Shared │ ├── MainLayout.razor │ ├── RedirectToLogin.razor │ └── UpdateAvailableDetector.razor ├── _Imports.razor └── wwwroot │ ├── ads-stencils.json │ ├── appsettings.json │ ├── css │ ├── app.css │ └── prism.css │ ├── favicon.ico │ ├── icon-192.png │ ├── icon-512.png │ ├── index.html │ ├── js │ ├── ads.js │ ├── dom-to-image-more.min.js │ └── prism.js │ ├── manifest.json │ ├── service-worker.js │ ├── service-worker.published.js │ └── sw-registrator.js ├── Configurations ├── ads-stencils.json └── main │ ├── deployment.yaml │ ├── ingress.yaml │ └── service.yaml ├── DockerBuild.ps1 ├── GenerateVersioningTargets.ps1 └── version.json /.github/codeql/codeql-config.yml: -------------------------------------------------------------------------------- 1 | name: "My CodeQL config" 2 | 3 | paths: 4 | - src 5 | paths-ignore: 6 | - src/Blazor.Diagrams -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | 11 | build: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v3 17 | with: 18 | fetch-depth: 0 # avoid shallow clone so nbgv can do its work. 19 | submodules: 'recursive' 20 | 21 | - name: Build the Docker image 22 | shell: pwsh 23 | working-directory: src 24 | run: | 25 | dotnet tool install -g nbgv 26 | .\DockerBuild.ps1 27 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/Blazor.Diagrams"] 2 | path = src/Blazor.Diagrams 3 | url = https://github.com/chunliu/Blazor.Diagrams.git 4 | branch = ads 5 | -------------------------------------------------------------------------------- /assets/AzureDesignStudio.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chunliu/AzureDesignStudio/2bd69d90d6c8806d53021409a5b0f3b2a44c38db/assets/AzureDesignStudio.gif -------------------------------------------------------------------------------- /assets/AzureDesignStudioV1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chunliu/AzureDesignStudio/2bd69d90d6c8806d53021409a5b0f3b2a44c38db/assets/AzureDesignStudioV1.gif -------------------------------------------------------------------------------- /assets/ads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chunliu/AzureDesignStudio/2bd69d90d6c8806d53021409a5b0f3b2a44c38db/assets/ads.png -------------------------------------------------------------------------------- /src/.dockerignore: -------------------------------------------------------------------------------- 1 | **/.classpath 2 | **/.dockerignore 3 | **/.env 4 | **/.git 5 | **/.gitignore 6 | **/.project 7 | **/.settings 8 | **/.toolstarget 9 | **/.vs 10 | **/.vscode 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | LICENSE 25 | README.md -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/ApiManagementServiceBasePropertiesCustomProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.ApiManagement 6 | { 7 | /// 8 | /// ApiManagementServiceBasePropertiesCustomProperties 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class ApiManagementServiceBasePropertiesCustomProperties 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/ApiManagementServiceIdentityUserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.ApiManagement 6 | { 7 | /// 8 | /// ApiManagementServiceIdentityUserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class ApiManagementServiceIdentityUserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/ApiManagementServiceSkuProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.ApiManagement 8 | { 9 | /// 10 | /// ApiManagementServiceSkuProperties 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class ApiManagementServiceSkuProperties 14 | { 15 | /// 16 | /// Name of the Sku. 17 | /// 18 | [Required] 19 | [JsonPropertyName("name")] 20 | public string Name { get; set; } 21 | 22 | /// 23 | /// Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. 24 | /// 25 | [Required] 26 | [JsonPropertyName("capacity")] 27 | public int Capacity { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/ApiVersionConstraint.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.ApiManagement 7 | { 8 | /// 9 | /// ApiVersionConstraint 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApiVersionConstraint 13 | { 14 | /// 15 | /// Limit control plane API calls to API Management service with version equal to or newer than this value. 16 | /// 17 | [JsonPropertyName("minApiVersion")] 18 | public string MinApiVersion { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/ArmIdWrapper.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.ApiManagement 7 | { 8 | /// 9 | /// ArmIdWrapper 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ArmIdWrapper 13 | { 14 | [JsonPropertyName("id")] 15 | public string Id { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/PrivateLinkServiceConnectionState.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.ApiManagement 7 | { 8 | /// 9 | /// PrivateLinkServiceConnectionState 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateLinkServiceConnectionState 13 | { 14 | /// 15 | /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. 16 | /// 17 | [JsonPropertyName("status")] 18 | public string Status { get; set; } 19 | 20 | /// 21 | /// The reason for approval/rejection of the connection. 22 | /// 23 | [JsonPropertyName("description")] 24 | public string Description { get; set; } 25 | 26 | /// 27 | /// A message indicating if changes on the service provider require any updates on the consumer. 28 | /// 29 | [JsonPropertyName("actionsRequired")] 30 | public string ActionsRequired { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/ApiManagement/VirtualNetworkConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.ApiManagement 7 | { 8 | /// 9 | /// VirtualNetworkConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualNetworkConfiguration 13 | { 14 | /// 15 | /// The virtual network ID. This is typically a GUID. Expect a null GUID by default. 16 | /// 17 | [JsonPropertyName("vnetid")] 18 | public string Vnetid { get; set; } 19 | 20 | /// 21 | /// The name of the subnet. 22 | /// 23 | [JsonPropertyName("subnetname")] 24 | public string Subnetname { get; set; } 25 | 26 | /// 27 | /// The full resource ID of a subnet in a virtual network to deploy the API Management service in. 28 | /// 29 | [JsonPropertyName("subnetResourceId")] 30 | public string SubnetResourceId { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/AzureDesignStudio.AzureResources.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net7.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/AzureResourceAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace AzureDesignStudio.AzureResources.Base 2 | { 3 | [AttributeUsage(AttributeTargets.Class)] 4 | public class AzureResourceAttribute : Attribute 5 | { 6 | public AzureResourceAttribute(string resourceType, string apiVersion) 7 | { 8 | ResourceType = resourceType; 9 | ApiVersion = apiVersion; 10 | } 11 | 12 | public string ResourceType { get; private set; } 13 | public string ApiVersion { get; private set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/FunctionMember.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.Collections.Generic; 6 | using System.Text.Json.Serialization; 7 | 8 | namespace AzureDesignStudio.AzureResources.Base 9 | { 10 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 11 | public partial class FunctionMember 12 | { 13 | /// 14 | /// Function parameters 15 | /// 16 | [JsonPropertyName("parameters")] 17 | public IList Parameters { get; set; } 18 | 19 | /// 20 | /// Function output 21 | /// 22 | [JsonPropertyName("output")] 23 | public FunctionOutput Output { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/FunctionNamespace.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.Collections.Generic; 6 | using System.Text.Json.Serialization; 7 | 8 | namespace AzureDesignStudio.AzureResources.Base 9 | { 10 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 11 | public partial class FunctionNamespace 12 | { 13 | /// 14 | /// Function namespace 15 | /// 16 | [JsonPropertyName("namespace")] 17 | public string Namespace { get; set; } 18 | 19 | /// 20 | /// Function members 21 | /// 22 | [JsonPropertyName("members")] 23 | public IDictionary Members { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/FunctionOutput.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Base 8 | { 9 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 10 | public partial class FunctionOutput 11 | { 12 | /// 13 | /// Type of function output value 14 | /// 15 | [JsonPropertyName("type")] 16 | public string Type { get; set; } 17 | 18 | /// 19 | /// Value assigned for function output 20 | /// 21 | [JsonPropertyName("value")] 22 | public string Value { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/FunctionParameter.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Base 8 | { 9 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 10 | public partial class FunctionParameter 11 | { 12 | /// 13 | /// Function parameter name 14 | /// 15 | [JsonPropertyName("name")] 16 | public string Name { get; set; } 17 | 18 | /// 19 | /// Type of function parameter value 20 | /// 21 | [JsonPropertyName("type")] 22 | public string Type { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/KeyVaultReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.ComponentModel.DataAnnotations; 6 | using System.Text.Json.Serialization; 7 | 8 | namespace AzureDesignStudio.AzureResources.Base 9 | { 10 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 11 | public partial class KeyVaultReference 12 | { 13 | [Required] 14 | [JsonPropertyName("keyVault")] 15 | public object KeyVault { get; set; } 16 | [Required] 17 | [JsonPropertyName("secretName")] 18 | public string SecretName { get; set; } 19 | [JsonPropertyName("secretVersion")] 20 | public string SecretVersion { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/Output.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.ComponentModel.DataAnnotations; 6 | using System.Text.Json.Serialization; 7 | 8 | namespace AzureDesignStudio.AzureResources.Base 9 | { 10 | /// 11 | /// Set of output parameters 12 | /// 13 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 14 | public partial class Output 15 | { 16 | /// 17 | /// Condition of the output 18 | /// 19 | [JsonPropertyName("condition")] 20 | public string Condition { get; set; } 21 | 22 | /// 23 | /// Type of output value 24 | /// 25 | [Required] 26 | [JsonPropertyName("type")] 27 | public string Type { get; set; } 28 | 29 | /// 30 | /// Value assigned for output 31 | /// 32 | [JsonPropertyName("value")] 33 | public string Value { get; set; } 34 | 35 | /// 36 | /// Output copy 37 | /// 38 | [JsonPropertyName("copy")] 39 | public OutputCopy Copy { get; set; } 40 | } 41 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/OutputCopy.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.ComponentModel.DataAnnotations; 6 | using System.Text.Json.Serialization; 7 | 8 | namespace AzureDesignStudio.AzureResources.Base 9 | { 10 | /// 11 | /// Output copy 12 | /// 13 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 14 | public partial class OutputCopy 15 | { 16 | /// 17 | /// Count of the copy 18 | /// 19 | [Required] 20 | [JsonPropertyName("count")] 21 | public string Count { get; set; } 22 | 23 | /// 24 | /// Input of the copy 25 | /// 26 | [Required] 27 | [JsonPropertyName("input")] 28 | public string Input { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Base/ResourceCopy.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System; 4 | using System.CodeDom.Compiler; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Base 8 | { 9 | [GeneratedCode("ArmTypeGenerator", "0.1.8.0")] 10 | public partial class ResourceCopy 11 | { 12 | /// 13 | /// Name of the copy 14 | /// 15 | [JsonPropertyName("name")] 16 | public string Name { get; set; } 17 | 18 | /// 19 | /// Count of the copy 20 | /// 21 | [JsonPropertyName("count")] 22 | public string Count { get; set; } 23 | 24 | /// 25 | /// The copy mode 26 | /// 27 | [JsonPropertyName("mode")] 28 | public string Mode { get; set; } 29 | 30 | /// 31 | /// The serial copy batch size 32 | /// 33 | [JsonPropertyName("batchSize")] 34 | public string BatchSize { get; set; } 35 | } 36 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/AdditionalCapabilities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// AdditionalCapabilities 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AdditionalCapabilities 13 | { 14 | /// 15 | /// The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. 16 | /// 17 | [JsonPropertyName("ultraSSDEnabled")] 18 | public bool UltraSSDEnabled { get; set; } 19 | 20 | /// 21 | /// The flag that enables or disables hibernation capability on the VM. 22 | /// 23 | [JsonPropertyName("hibernationEnabled")] 24 | public bool HibernationEnabled { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/ApiErrorBase.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// ApiErrorBase 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApiErrorBase 13 | { 14 | /// 15 | /// The error code. 16 | /// 17 | [JsonPropertyName("code")] 18 | public string Code { get; set; } 19 | 20 | /// 21 | /// The target of the particular error. 22 | /// 23 | [JsonPropertyName("target")] 24 | public string Target { get; set; } 25 | 26 | /// 27 | /// The error message. 28 | /// 29 | [JsonPropertyName("message")] 30 | public string Message { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/ApplicationProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// ApplicationProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationProfile 13 | { 14 | /// 15 | /// Specifies the gallery applications that should be made available to the VM/VMSS 16 | /// 17 | [JsonPropertyName("galleryApplications")] 18 | public IList GalleryApplications { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/BootDiagnostics.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// BootDiagnostics 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class BootDiagnostics 13 | { 14 | /// 15 | /// Whether boot diagnostics should be enabled on the Virtual Machine. 16 | /// 17 | [JsonPropertyName("enabled")] 18 | public bool Enabled { get; set; } 19 | 20 | /// 21 | /// Uri of the storage account to use for placing the console output and screenshot.

If storageUri is not specified while enabling boot diagnostics, managed storage will be used. 22 | ///
23 | [JsonPropertyName("storageUri")] 24 | public string StorageUri { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/CapacityReservationProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// CapacityReservationProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class CapacityReservationProfile 13 | { 14 | /// 15 | /// Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. 16 | /// 17 | [JsonPropertyName("capacityReservationGroup")] 18 | public SubResource CapacityReservationGroup { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/DiagnosticsProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// DiagnosticsProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DiagnosticsProfile 13 | { 14 | /// 15 | /// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.
**NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM.

You can easily view the output of your console log.

Azure also enables you to see a screenshot of the VM from the hypervisor. 16 | ///
17 | [JsonPropertyName("bootDiagnostics")] 18 | public BootDiagnostics BootDiagnostics { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/DiskEncryptionSetParameters.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// DiskEncryptionSetParameters 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DiskEncryptionSetParameters 13 | { 14 | /// 15 | /// Resource Id 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/DiskEncryptionSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// DiskEncryptionSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DiskEncryptionSettings 13 | { 14 | /// 15 | /// Specifies the location of the disk encryption key, which is a Key Vault Secret. 16 | /// 17 | [JsonPropertyName("diskEncryptionKey")] 18 | public KeyVaultSecretReference DiskEncryptionKey { get; set; } 19 | 20 | /// 21 | /// Specifies the location of the key encryption key in Key Vault. 22 | /// 23 | [JsonPropertyName("keyEncryptionKey")] 24 | public KeyVaultKeyReference KeyEncryptionKey { get; set; } 25 | 26 | /// 27 | /// Specifies whether disk encryption should be enabled on the virtual machine. 28 | /// 29 | [JsonPropertyName("enabled")] 30 | public bool Enabled { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/DiskInstanceView.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// DiskInstanceView 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DiskInstanceView 13 | { 14 | /// 15 | /// The disk name. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Specifies the encryption settings for the OS Disk.

Minimum api-version: 2015-06-15 22 | ///
23 | [JsonPropertyName("encryptionSettings")] 24 | public IList EncryptionSettings { get; set; } 25 | 26 | /// 27 | /// The resource status information. 28 | /// 29 | [JsonPropertyName("statuses")] 30 | public IList Statuses { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/ExtendedLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// ExtendedLocation 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ExtendedLocation 13 | { 14 | /// 15 | /// The name of the extended location. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// The type of the extended location. 22 | /// 23 | [JsonPropertyName("type")] 24 | public string Type { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/InnerError.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// InnerError 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class InnerError 13 | { 14 | /// 15 | /// The exception type. 16 | /// 17 | [JsonPropertyName("exceptiontype")] 18 | public string Exceptiontype { get; set; } 19 | 20 | /// 21 | /// The internal error message or exception dump. 22 | /// 23 | [JsonPropertyName("errordetail")] 24 | public string Errordetail { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/KeyVaultKeyReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Compute 8 | { 9 | /// 10 | /// KeyVaultKeyReference 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class KeyVaultKeyReference 14 | { 15 | /// 16 | /// The URL referencing a key encryption key in Key Vault. 17 | /// 18 | [Required] 19 | [JsonPropertyName("keyUrl")] 20 | public string KeyUrl { get; set; } 21 | 22 | /// 23 | /// The relative URL of the Key Vault containing the key. 24 | /// 25 | [Required] 26 | [JsonPropertyName("sourceVault")] 27 | public SubResource SourceVault { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/KeyVaultSecretReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Compute 8 | { 9 | /// 10 | /// KeyVaultSecretReference 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class KeyVaultSecretReference 14 | { 15 | /// 16 | /// The URL referencing a secret in a Key Vault. 17 | /// 18 | [Required] 19 | [JsonPropertyName("secretUrl")] 20 | public string SecretUrl { get; set; } 21 | 22 | /// 23 | /// The relative URL of the Key Vault containing the secret. 24 | /// 25 | [Required] 26 | [JsonPropertyName("sourceVault")] 27 | public SubResource SourceVault { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/LinuxVMGuestPatchAutomaticByPlatformSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// LinuxVMGuestPatchAutomaticByPlatformSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class LinuxVMGuestPatchAutomaticByPlatformSettings 13 | { 14 | /// 15 | /// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. 16 | /// 17 | [JsonPropertyName("rebootSetting")] 18 | public string RebootSetting { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/NetworkInterfaceReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// NetworkInterfaceReference 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NetworkInterfaceReference 13 | { 14 | /// 15 | /// Describes a network interface reference properties. 16 | /// 17 | [JsonPropertyName("properties")] 18 | public NetworkInterfaceReferenceProperties Properties { get; set; } 19 | 20 | /// 21 | /// Resource Id 22 | /// 23 | [JsonPropertyName("id")] 24 | public string Id { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/NetworkInterfaceReferenceProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// NetworkInterfaceReferenceProperties 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NetworkInterfaceReferenceProperties 13 | { 14 | /// 15 | /// Specifies the primary network interface in case the virtual machine has more than 1 network interface. 16 | /// 17 | [JsonPropertyName("primary")] 18 | public bool Primary { get; set; } 19 | 20 | /// 21 | /// Specify what happens to the network interface when the VM is deleted 22 | /// 23 | [JsonPropertyName("deleteOption")] 24 | public string DeleteOption { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/Plan.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// Plan 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class Plan 13 | { 14 | /// 15 | /// The plan ID. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// The publisher ID. 22 | /// 23 | [JsonPropertyName("publisher")] 24 | public string Publisher { get; set; } 25 | 26 | /// 27 | /// Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element. 28 | /// 29 | [JsonPropertyName("product")] 30 | public string Product { get; set; } 31 | 32 | /// 33 | /// The promotion code. 34 | /// 35 | [JsonPropertyName("promotionCode")] 36 | public string PromotionCode { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/PublicIPAddressSku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// PublicIPAddressSku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PublicIPAddressSku 13 | { 14 | /// 15 | /// Specify public IP sku name 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Specify public IP sku tier 22 | /// 23 | [JsonPropertyName("tier")] 24 | public string Tier { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/ResourceWithOptionalLocationTags.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Compute 6 | { 7 | /// 8 | /// ResourceWithOptionalLocationTags 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class ResourceWithOptionalLocationTags 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/ScheduledEventsProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// ScheduledEventsProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ScheduledEventsProfile 13 | { 14 | /// 15 | /// Specifies Terminate Scheduled Event related configurations. 16 | /// 17 | [JsonPropertyName("terminateNotificationProfile")] 18 | public TerminateNotificationProfile TerminateNotificationProfile { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/SshConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// SshConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SshConfiguration 13 | { 14 | /// 15 | /// The list of SSH public keys used to authenticate with linux based VMs. 16 | /// 17 | [JsonPropertyName("publicKeys")] 18 | public IList PublicKeys { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/SshPublicKey.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// SshPublicKey 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SshPublicKey 13 | { 14 | /// 15 | /// Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys 16 | /// 17 | [JsonPropertyName("path")] 18 | public string Path { get; set; } 19 | 20 | /// 21 | /// SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). 22 | ///
23 | [JsonPropertyName("keyData")] 24 | public string KeyData { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/SubResource.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// SubResource 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SubResource 13 | { 14 | /// 15 | /// Resource Id 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/TerminateNotificationProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// TerminateNotificationProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class TerminateNotificationProfile 13 | { 14 | /// 15 | /// Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M) 16 | /// 17 | [JsonPropertyName("notBeforeTimeout")] 18 | public string NotBeforeTimeout { get; set; } 19 | 20 | /// 21 | /// Specifies whether the Terminate Scheduled event is enabled or disabled. 22 | /// 23 | [JsonPropertyName("enable")] 24 | public bool Enable { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/UefiSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// UefiSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class UefiSettings 13 | { 14 | /// 15 | /// Specifies whether secure boot should be enabled on the virtual machine.

Minimum api-version: 2020-12-01 16 | ///
17 | [JsonPropertyName("secureBootEnabled")] 18 | public bool SecureBootEnabled { get; set; } 19 | 20 | /// 21 | /// Specifies whether vTPM should be enabled on the virtual machine.

Minimum api-version: 2020-12-01 22 | ///
23 | [JsonPropertyName("vTpmEnabled")] 24 | public bool VTpmEnabled { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/UserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Compute 6 | { 7 | /// 8 | /// UserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class UserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VaultSecretGroup.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VaultSecretGroup 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VaultSecretGroup 13 | { 14 | /// 15 | /// The relative URL of the Key Vault containing all of the certificates in VaultCertificates. 16 | /// 17 | [JsonPropertyName("sourceVault")] 18 | public SubResource SourceVault { get; set; } 19 | 20 | /// 21 | /// The list of key vault references in SourceVault which contain certificates. 22 | /// 23 | [JsonPropertyName("vaultCertificates")] 24 | public IList VaultCertificates { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualHardDisk.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VirtualHardDisk 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualHardDisk 13 | { 14 | /// 15 | /// Specifies the virtual hard disk's uri. 16 | /// 17 | [JsonPropertyName("uri")] 18 | public string Uri { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineAgentInstanceView.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VirtualMachineAgentInstanceView 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualMachineAgentInstanceView 13 | { 14 | /// 15 | /// The VM Agent full version. 16 | /// 17 | [JsonPropertyName("vmAgentVersion")] 18 | public string VmAgentVersion { get; set; } 19 | 20 | /// 21 | /// The virtual machine extension handler instance view. 22 | /// 23 | [JsonPropertyName("extensionHandlers")] 24 | public IList ExtensionHandlers { get; set; } 25 | 26 | /// 27 | /// The resource status information. 28 | /// 29 | [JsonPropertyName("statuses")] 30 | public IList Statuses { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineExtensionHandlerInstanceView.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VirtualMachineExtensionHandlerInstanceView 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualMachineExtensionHandlerInstanceView 13 | { 14 | /// 15 | /// Specifies the type of the extension; an example is "CustomScriptExtension". 16 | /// 17 | [JsonPropertyName("type")] 18 | public string Type { get; set; } 19 | 20 | /// 21 | /// Specifies the version of the script handler. 22 | /// 23 | [JsonPropertyName("typeHandlerVersion")] 24 | public string TypeHandlerVersion { get; set; } 25 | 26 | /// 27 | /// The extension handler status. 28 | /// 29 | [JsonPropertyName("status")] 30 | public InstanceViewStatus Status { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineHealthStatus.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VirtualMachineHealthStatus 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualMachineHealthStatus 13 | { 14 | /// 15 | /// The health status information for the VM. 16 | /// 17 | [JsonPropertyName("status")] 18 | public InstanceViewStatus Status { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineIpTag.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VirtualMachineIpTag 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualMachineIpTag 13 | { 14 | /// 15 | /// IP tag type. Example: FirstPartyUsage. 16 | /// 17 | [JsonPropertyName("ipTagType")] 18 | public string IpTagType { get; set; } 19 | 20 | /// 21 | /// IP tag associated with the public IP. Example: SQL, Storage etc. 22 | /// 23 | [JsonPropertyName("tag")] 24 | public string Tag { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineNetworkInterfaceConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Compute 8 | { 9 | /// 10 | /// VirtualMachineNetworkInterfaceConfiguration 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class VirtualMachineNetworkInterfaceConfiguration 14 | { 15 | /// 16 | /// The network interface configuration name. 17 | /// 18 | [Required] 19 | [JsonPropertyName("name")] 20 | public string Name { get; set; } 21 | 22 | /// 23 | /// Describes a virtual machine network profile's IP configuration. 24 | /// 25 | [JsonPropertyName("properties")] 26 | public VirtualMachineNetworkInterfaceConfigurationProperties Properties { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineNetworkInterfaceDnsSettingsConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// VirtualMachineNetworkInterfaceDnsSettingsConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualMachineNetworkInterfaceDnsSettingsConfiguration 13 | { 14 | /// 15 | /// List of DNS servers IP addresses 16 | /// 17 | [JsonPropertyName("dnsServers")] 18 | public IList DnsServers { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachineNetworkInterfaceIPConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Compute 8 | { 9 | /// 10 | /// VirtualMachineNetworkInterfaceIPConfiguration 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class VirtualMachineNetworkInterfaceIPConfiguration 14 | { 15 | /// 16 | /// The IP configuration name. 17 | /// 18 | [Required] 19 | [JsonPropertyName("name")] 20 | public string Name { get; set; } 21 | 22 | /// 23 | /// Describes a virtual machine network interface IP configuration properties. 24 | /// 25 | [JsonPropertyName("properties")] 26 | public VirtualMachineNetworkInterfaceIPConfigurationProperties Properties { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/VirtualMachinePublicIPAddressDnsSettingsConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Compute 8 | { 9 | /// 10 | /// VirtualMachinePublicIPAddressDnsSettingsConfiguration 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class VirtualMachinePublicIPAddressDnsSettingsConfiguration 14 | { 15 | /// 16 | /// The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID. 17 | /// 18 | [Required] 19 | [JsonPropertyName("domainNameLabel")] 20 | public string DomainNameLabel { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/WinRMConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// WinRMConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class WinRMConfiguration 13 | { 14 | /// 15 | /// The list of Windows Remote Management listeners 16 | /// 17 | [JsonPropertyName("listeners")] 18 | public IList Listeners { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Compute/WindowsVMGuestPatchAutomaticByPlatformSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Compute 7 | { 8 | /// 9 | /// WindowsVMGuestPatchAutomaticByPlatformSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class WindowsVMGuestPatchAutomaticByPlatformSettings 13 | { 14 | /// 15 | /// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. 16 | /// 17 | [JsonPropertyName("rebootSetting")] 18 | public string RebootSetting { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AddressSpace.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AddressSpace 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AddressSpace 13 | { 14 | /// 15 | /// A list of address blocks reserved for this virtual network in CIDR notation. 16 | /// 17 | [JsonPropertyName("addressPrefixes")] 18 | public IList AddressPrefixes { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayAuthenticationCertificatePropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayAuthenticationCertificatePropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayAuthenticationCertificatePropertiesFormat 13 | { 14 | /// 15 | /// Certificate public data. 16 | /// 17 | [JsonPropertyName("data")] 18 | public string Data { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the authentication certificate resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayAutoscaleConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Network 8 | { 9 | /// 10 | /// ApplicationGatewayAutoscaleConfiguration 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class ApplicationGatewayAutoscaleConfiguration 14 | { 15 | /// 16 | /// Lower bound on number of Application Gateway capacity. 17 | /// 18 | [Required] 19 | [JsonPropertyName("minCapacity")] 20 | public int MinCapacity { get; set; } 21 | 22 | /// 23 | /// Upper bound on number of Application Gateway capacity. 24 | /// 25 | [JsonPropertyName("maxCapacity")] 26 | public int MaxCapacity { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayBackendAddress.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayBackendAddress 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayBackendAddress 13 | { 14 | /// 15 | /// Fully qualified domain name (FQDN). 16 | /// 17 | [JsonPropertyName("fqdn")] 18 | public string Fqdn { get; set; } 19 | 20 | /// 21 | /// IP address. 22 | /// 23 | [JsonPropertyName("ipAddress")] 24 | public string IpAddress { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayClientAuthConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayClientAuthConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayClientAuthConfiguration 13 | { 14 | /// 15 | /// Verify client certificate issuer name on the application gateway. 16 | /// 17 | [JsonPropertyName("verifyClientCertIssuerDN")] 18 | public bool VerifyClientCertIssuerDN { get; set; } 19 | 20 | /// 21 | /// Verify client certificate revocation status. 22 | /// 23 | [JsonPropertyName("verifyClientRevocation")] 24 | public string VerifyClientRevocation { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayConnectionDraining.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Network 8 | { 9 | /// 10 | /// ApplicationGatewayConnectionDraining 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class ApplicationGatewayConnectionDraining 14 | { 15 | /// 16 | /// Whether connection draining is enabled or not. 17 | /// 18 | [Required] 19 | [JsonPropertyName("enabled")] 20 | public bool Enabled { get; set; } 21 | 22 | /// 23 | /// The number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds. 24 | /// 25 | [Required] 26 | [JsonPropertyName("drainTimeoutInSec")] 27 | public int DrainTimeoutInSec { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayCustomError.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayCustomError 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayCustomError 13 | { 14 | /// 15 | /// Status code of the application gateway customer error. 16 | /// 17 | [JsonPropertyName("statusCode")] 18 | public string StatusCode { get; set; } 19 | 20 | /// 21 | /// Error page URL of the application gateway customer error. 22 | /// 23 | [JsonPropertyName("customErrorPageUrl")] 24 | public string CustomErrorPageUrl { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayFirewallDisabledRuleGroup.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Network 8 | { 9 | /// 10 | /// ApplicationGatewayFirewallDisabledRuleGroup 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class ApplicationGatewayFirewallDisabledRuleGroup 14 | { 15 | /// 16 | /// The name of the rule group that will be disabled. 17 | /// 18 | [Required] 19 | [JsonPropertyName("ruleGroupName")] 20 | public string RuleGroupName { get; set; } 21 | 22 | /// 23 | /// The list of rules that will be disabled. If null, all rules of the rule group will be disabled. 24 | /// 25 | [JsonPropertyName("rules")] 26 | public IList Rules { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayFrontendPortPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayFrontendPortPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayFrontendPortPropertiesFormat 13 | { 14 | /// 15 | /// Frontend port. 16 | /// 17 | [JsonPropertyName("port")] 18 | public int Port { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the frontend port resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayGlobalConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayGlobalConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayGlobalConfiguration 13 | { 14 | /// 15 | /// Enable request buffering. 16 | /// 17 | [JsonPropertyName("enableRequestBuffering")] 18 | public bool EnableRequestBuffering { get; set; } 19 | 20 | /// 21 | /// Enable response buffering. 22 | /// 23 | [JsonPropertyName("enableResponseBuffering")] 24 | public bool EnableResponseBuffering { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayHeaderConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayHeaderConfiguration 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayHeaderConfiguration 13 | { 14 | /// 15 | /// Header name of the header configuration. 16 | /// 17 | [JsonPropertyName("headerName")] 18 | public string HeaderName { get; set; } 19 | 20 | /// 21 | /// Header value of the header configuration. 22 | /// 23 | [JsonPropertyName("headerValue")] 24 | public string HeaderValue { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayIPConfigurationPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayIPConfigurationPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayIPConfigurationPropertiesFormat 13 | { 14 | /// 15 | /// Reference to the subnet resource. A subnet from where application gateway gets its private address. 16 | /// 17 | [JsonPropertyName("subnet")] 18 | public SubResource Subnet { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the application gateway IP configuration resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayLoadDistributionTargetPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayLoadDistributionTargetPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayLoadDistributionTargetPropertiesFormat 13 | { 14 | /// 15 | /// Weight per server. Range between 1 and 100. 16 | /// 17 | [JsonPropertyName("weightPerServer")] 18 | public int WeightPerServer { get; set; } 19 | 20 | /// 21 | /// Backend address pool resource of the application gateway. 22 | /// 23 | [JsonPropertyName("backendAddressPool")] 24 | public SubResource BackendAddressPool { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayPrivateLinkConfigurationProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayPrivateLinkConfigurationProperties 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayPrivateLinkConfigurationProperties 13 | { 14 | /// 15 | /// An array of application gateway private link ip configurations. 16 | /// 17 | [JsonPropertyName("ipConfigurations")] 18 | public IList IpConfigurations { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the application gateway private link configuration. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayProbeHealthResponseMatch.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayProbeHealthResponseMatch 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayProbeHealthResponseMatch 13 | { 14 | /// 15 | /// Body that must be contained in the health response. Default value is empty. 16 | /// 17 | [JsonPropertyName("body")] 18 | public string Body { get; set; } 19 | 20 | /// 21 | /// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. 22 | /// 23 | [JsonPropertyName("statusCodes")] 24 | public IList StatusCodes { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewayRewriteRuleSetPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewayRewriteRuleSetPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewayRewriteRuleSetPropertiesFormat 13 | { 14 | /// 15 | /// Rewrite rules in the rewrite rule set. 16 | /// 17 | [JsonPropertyName("rewriteRules")] 18 | public IList RewriteRules { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the rewrite rule set resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationGatewaySku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationGatewaySku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationGatewaySku 13 | { 14 | /// 15 | /// Name of an application gateway SKU. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Tier of an application gateway. 22 | /// 23 | [JsonPropertyName("tier")] 24 | public string Tier { get; set; } 25 | 26 | /// 27 | /// Capacity (instance count) of an application gateway. 28 | /// 29 | [JsonPropertyName("capacity")] 30 | public int Capacity { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ApplicationSecurityGroupPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ApplicationSecurityGroupPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApplicationSecurityGroupPropertiesFormat 13 | { 14 | /// 15 | /// The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. 16 | /// 17 | [JsonPropertyName("resourceGuid")] 18 | public string ResourceGuid { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the application security group resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallAdditionalProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Network 6 | { 7 | /// 8 | /// AzureFirewallAdditionalProperties 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class AzureFirewallAdditionalProperties 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallApplicationRuleProtocol.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AzureFirewallApplicationRuleProtocol 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AzureFirewallApplicationRuleProtocol 13 | { 14 | /// 15 | /// Protocol type. 16 | /// 17 | [JsonPropertyName("protocolType")] 18 | public string ProtocolType { get; set; } 19 | 20 | /// 21 | /// Port number for the protocol, cannot be greater than 64000. This field is optional. 22 | /// 23 | [JsonPropertyName("port")] 24 | public int Port { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallIpGroups.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AzureFirewallIpGroups 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AzureFirewallIpGroups 13 | { 14 | /// 15 | /// Resource ID. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | 20 | /// 21 | /// The iteration number. 22 | /// 23 | [JsonPropertyName("changeNumber")] 24 | public string ChangeNumber { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallNatRCAction.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AzureFirewallNatRCAction 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AzureFirewallNatRCAction 13 | { 14 | /// 15 | /// The type of action. 16 | /// 17 | [JsonPropertyName("type")] 18 | public string Type { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallPublicIPAddress.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AzureFirewallPublicIPAddress 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AzureFirewallPublicIPAddress 13 | { 14 | /// 15 | /// Public IP Address value. 16 | /// 17 | [JsonPropertyName("address")] 18 | public string Address { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallRCAction.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AzureFirewallRCAction 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AzureFirewallRCAction 13 | { 14 | /// 15 | /// The type of action. 16 | /// 17 | [JsonPropertyName("type")] 18 | public string Type { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/AzureFirewallSku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// AzureFirewallSku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AzureFirewallSku 13 | { 14 | /// 15 | /// Name of an Azure Firewall SKU. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Tier of an Azure Firewall. 22 | /// 23 | [JsonPropertyName("tier")] 24 | public string Tier { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/CustomDnsConfigPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// CustomDnsConfigPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class CustomDnsConfigPropertiesFormat 13 | { 14 | /// 15 | /// Fqdn that resolves to private endpoint ip address. 16 | /// 17 | [JsonPropertyName("fqdn")] 18 | public string Fqdn { get; set; } 19 | 20 | /// 21 | /// A list of private ip addresses of the private endpoint. 22 | /// 23 | [JsonPropertyName("ipAddresses")] 24 | public IList IpAddresses { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/DdosSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// DdosSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DdosSettings 13 | { 14 | /// 15 | /// The DDoS protection mode of the public IP 16 | /// 17 | [JsonPropertyName("protectionMode")] 18 | public string ProtectionMode { get; set; } 19 | 20 | /// 21 | /// The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled 22 | /// 23 | [JsonPropertyName("ddosProtectionPlan")] 24 | public SubResource DdosProtectionPlan { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/DhcpOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// DhcpOptions 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DhcpOptions 13 | { 14 | /// 15 | /// The list of DNS servers IP addresses. 16 | /// 17 | [JsonPropertyName("dnsServers")] 18 | public IList DnsServers { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/DnsSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// DnsSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DnsSettings 13 | { 14 | /// 15 | /// List of Custom DNS Servers. 16 | /// 17 | [JsonPropertyName("servers")] 18 | public IList Servers { get; set; } 19 | 20 | /// 21 | /// Enable DNS Proxy on Firewalls attached to the Firewall Policy. 22 | /// 23 | [JsonPropertyName("enableProxy")] 24 | public bool EnableProxy { get; set; } 25 | 26 | /// 27 | /// FQDNs in Network Rules are supported when set to true. 28 | /// 29 | [JsonPropertyName("requireProxyForNetworkRules")] 30 | public bool RequireProxyForNetworkRules { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ExtendedLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ExtendedLocation 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ExtendedLocation 13 | { 14 | /// 15 | /// The name of the extended location. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// The type of the extended location. 22 | /// 23 | [JsonPropertyName("type")] 24 | public string Type { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyCertificateAuthority.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyCertificateAuthority 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyCertificateAuthority 13 | { 14 | /// 15 | /// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. 16 | /// 17 | [JsonPropertyName("keyVaultSecretId")] 18 | public string KeyVaultSecretId { get; set; } 19 | 20 | /// 21 | /// Name of the CA certificate. 22 | /// 23 | [JsonPropertyName("name")] 24 | public string Name { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyInsights.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyInsights 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyInsights 13 | { 14 | /// 15 | /// A flag to indicate if the insights are enabled on the policy. 16 | /// 17 | [JsonPropertyName("isEnabled")] 18 | public bool IsEnabled { get; set; } 19 | 20 | /// 21 | /// Number of days the insights should be enabled on the policy. 22 | /// 23 | [JsonPropertyName("retentionDays")] 24 | public int RetentionDays { get; set; } 25 | 26 | /// 27 | /// Workspaces needed to configure the Firewall Policy Insights. 28 | /// 29 | [JsonPropertyName("logAnalyticsResources")] 30 | public FirewallPolicyLogAnalyticsResources LogAnalyticsResources { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyIntrusionDetection.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyIntrusionDetection 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyIntrusionDetection 13 | { 14 | /// 15 | /// Intrusion detection general state. 16 | /// 17 | [JsonPropertyName("mode")] 18 | public string Mode { get; set; } 19 | 20 | /// 21 | /// Intrusion detection configuration properties. 22 | /// 23 | [JsonPropertyName("configuration")] 24 | public FirewallPolicyIntrusionDetectionConfiguration Configuration { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyIntrusionDetectionSignatureSpecification.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyIntrusionDetectionSignatureSpecification 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyIntrusionDetectionSignatureSpecification 13 | { 14 | /// 15 | /// Signature id. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | 20 | /// 21 | /// The signature state. 22 | /// 23 | [JsonPropertyName("mode")] 24 | public string Mode { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyLogAnalyticsResources.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyLogAnalyticsResources 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyLogAnalyticsResources 13 | { 14 | /// 15 | /// List of workspaces for Firewall Policy Insights. 16 | /// 17 | [JsonPropertyName("workspaces")] 18 | public IList Workspaces { get; set; } 19 | 20 | /// 21 | /// The default workspace Id for Firewall Policy Insights. 22 | /// 23 | [JsonPropertyName("defaultWorkspaceId")] 24 | public SubResource DefaultWorkspaceId { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyLogAnalyticsWorkspace.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyLogAnalyticsWorkspace 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyLogAnalyticsWorkspace 13 | { 14 | /// 15 | /// Region to configure the Workspace. 16 | /// 17 | [JsonPropertyName("region")] 18 | public string Region { get; set; } 19 | 20 | /// 21 | /// The workspace Id for Firewall Policy Insights. 22 | /// 23 | [JsonPropertyName("workspaceId")] 24 | public SubResource WorkspaceId { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicySQL.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicySQL 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicySQL 13 | { 14 | /// 15 | /// A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. 16 | /// 17 | [JsonPropertyName("allowSqlRedirect")] 18 | public bool AllowSqlRedirect { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicySku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicySku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicySku 13 | { 14 | /// 15 | /// Tier of Firewall Policy. 16 | /// 17 | [JsonPropertyName("tier")] 18 | public string Tier { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicySnat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicySnat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicySnat 13 | { 14 | /// 15 | /// List of private IP addresses/IP address ranges to not be SNAT. 16 | /// 17 | [JsonPropertyName("privateRanges")] 18 | public IList PrivateRanges { get; set; } 19 | 20 | /// 21 | /// The operation mode for automatically learning private ranges to not be SNAT 22 | /// 23 | [JsonPropertyName("autoLearnPrivateRanges")] 24 | public string AutoLearnPrivateRanges { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyThreatIntelWhitelist.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyThreatIntelWhitelist 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyThreatIntelWhitelist 13 | { 14 | /// 15 | /// List of IP addresses for the ThreatIntel Whitelist. 16 | /// 17 | [JsonPropertyName("ipAddresses")] 18 | public IList IpAddresses { get; set; } 19 | 20 | /// 21 | /// List of FQDNs for the ThreatIntel Whitelist. 22 | /// 23 | [JsonPropertyName("fqdns")] 24 | public IList Fqdns { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FirewallPolicyTransportSecurity.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FirewallPolicyTransportSecurity 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FirewallPolicyTransportSecurity 13 | { 14 | /// 15 | /// The CA used for intermediate CA generation. 16 | /// 17 | [JsonPropertyName("certificateAuthority")] 18 | public FirewallPolicyCertificateAuthority CertificateAuthority { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/FlowLogFormatParameters.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// FlowLogFormatParameters 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class FlowLogFormatParameters 13 | { 14 | /// 15 | /// The file type of flow log. 16 | /// 17 | [JsonPropertyName("type")] 18 | public string Type { get; set; } 19 | 20 | /// 21 | /// The version (revision) of the flow log. 22 | /// 23 | [JsonPropertyName("version")] 24 | public int Version { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/HubIPAddresses.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// HubIPAddresses 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class HubIPAddresses 13 | { 14 | /// 15 | /// Public IP addresses associated with azure firewall. 16 | /// 17 | [JsonPropertyName("publicIPs")] 18 | public HubPublicIPAddresses PublicIPs { get; set; } 19 | 20 | /// 21 | /// Private IP Address associated with azure firewall. 22 | /// 23 | [JsonPropertyName("privateIPAddress")] 24 | public string PrivateIPAddress { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/HubPublicIPAddresses.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// HubPublicIPAddresses 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class HubPublicIPAddresses 13 | { 14 | /// 15 | /// The list of Public IP addresses associated with azure firewall or IP addresses to be retained. 16 | /// 17 | [JsonPropertyName("addresses")] 18 | public IList Addresses { get; set; } 19 | 20 | /// 21 | /// The number of Public IP addresses associated with azure firewall. 22 | /// 23 | [JsonPropertyName("count")] 24 | public int Count { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/IPConfigurationProfilePropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// IPConfigurationProfilePropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class IPConfigurationProfilePropertiesFormat 13 | { 14 | /// 15 | /// The reference to the subnet resource to create a container network interface ip configuration. 16 | /// 17 | [JsonPropertyName("subnet")] 18 | public Subnet Subnet { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the IP configuration profile resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/IpTag.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// IpTag 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class IpTag 13 | { 14 | /// 15 | /// The IP tag type. Example: FirstPartyUsage. 16 | /// 17 | [JsonPropertyName("ipTagType")] 18 | public string IpTagType { get; set; } 19 | 20 | /// 21 | /// The value of the IP tag associated with the public IP. Example: SQL. 22 | /// 23 | [JsonPropertyName("tag")] 24 | public string Tag { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/LoadBalancerBackendAddress.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// LoadBalancerBackendAddress 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class LoadBalancerBackendAddress 13 | { 14 | /// 15 | /// Properties of load balancer backend address pool. 16 | /// 17 | [JsonPropertyName("properties")] 18 | public LoadBalancerBackendAddressPropertiesFormat Properties { get; set; } 19 | 20 | /// 21 | /// Name of the backend address. 22 | /// 23 | [JsonPropertyName("name")] 24 | public string Name { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ManagedServiceIdentityUserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Network 6 | { 7 | /// 8 | /// ManagedServiceIdentityUserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class ManagedServiceIdentityUserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/NatGatewaySku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// NatGatewaySku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NatGatewaySku 13 | { 14 | /// 15 | /// Name of Nat Gateway SKU. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/NatRulePortMapping.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// NatRulePortMapping 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NatRulePortMapping 13 | { 14 | /// 15 | /// Name of inbound NAT rule. 16 | /// 17 | [JsonPropertyName("inboundNatRuleName")] 18 | public string InboundNatRuleName { get; set; } 19 | 20 | /// 21 | /// Frontend port. 22 | /// 23 | [JsonPropertyName("frontendPort")] 24 | public int FrontendPort { get; set; } 25 | 26 | /// 27 | /// Backend port. 28 | /// 29 | [JsonPropertyName("backendPort")] 30 | public int BackendPort { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties 13 | { 14 | /// 15 | /// The group ID for current private link connection. 16 | /// 17 | [JsonPropertyName("groupId")] 18 | public string GroupId { get; set; } 19 | 20 | /// 21 | /// The required member name for current private link connection. 22 | /// 23 | [JsonPropertyName("requiredMemberName")] 24 | public string RequiredMemberName { get; set; } 25 | 26 | /// 27 | /// List of FQDNs for current private link connection. 28 | /// 29 | [JsonPropertyName("fqdns")] 30 | public IList Fqdns { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/NetworkInterfaceTapConfigurationPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// NetworkInterfaceTapConfigurationPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NetworkInterfaceTapConfigurationPropertiesFormat 13 | { 14 | /// 15 | /// The reference to the Virtual Network Tap resource. 16 | /// 17 | [JsonPropertyName("virtualNetworkTap")] 18 | public VirtualNetworkTap VirtualNetworkTap { get; set; } 19 | 20 | /// 21 | /// The provisioning state of the network interface tap configuration resource. 22 | /// 23 | [JsonPropertyName("provisioningState")] 24 | public string ProvisioningState { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/PrivateLinkServiceConnectionState.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// PrivateLinkServiceConnectionState 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateLinkServiceConnectionState 13 | { 14 | /// 15 | /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. 16 | /// 17 | [JsonPropertyName("status")] 18 | public string Status { get; set; } 19 | 20 | /// 21 | /// The reason for approval/rejection of the connection. 22 | /// 23 | [JsonPropertyName("description")] 24 | public string Description { get; set; } 25 | 26 | /// 27 | /// A message indicating if changes on the service provider require any updates on the consumer. 28 | /// 29 | [JsonPropertyName("actionsRequired")] 30 | public string ActionsRequired { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/PrivateLinkServicePropertiesAutoApproval.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// PrivateLinkServicePropertiesAutoApproval 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateLinkServicePropertiesAutoApproval 13 | { 14 | /// 15 | /// The list of subscriptions. 16 | /// 17 | [JsonPropertyName("subscriptions")] 18 | public IList Subscriptions { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/PrivateLinkServicePropertiesVisibility.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// PrivateLinkServicePropertiesVisibility 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateLinkServicePropertiesVisibility 13 | { 14 | /// 15 | /// The list of subscriptions. 16 | /// 17 | [JsonPropertyName("subscriptions")] 18 | public IList Subscriptions { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/PublicIPAddressSku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// PublicIPAddressSku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PublicIPAddressSku 13 | { 14 | /// 15 | /// Name of a public IP address SKU. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Tier of a public IP address SKU. 22 | /// 23 | [JsonPropertyName("tier")] 24 | public string Tier { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ResourceNavigationLinkFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ResourceNavigationLinkFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ResourceNavigationLinkFormat 13 | { 14 | /// 15 | /// Resource type of the linked resource. 16 | /// 17 | [JsonPropertyName("linkedResourceType")] 18 | public string LinkedResourceType { get; set; } 19 | 20 | /// 21 | /// Link to the external resource. 22 | /// 23 | [JsonPropertyName("link")] 24 | public string Link { get; set; } 25 | 26 | /// 27 | /// The provisioning state of the resource navigation link resource. 28 | /// 29 | [JsonPropertyName("provisioningState")] 30 | public string ProvisioningState { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/RetentionPolicyParameters.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// RetentionPolicyParameters 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class RetentionPolicyParameters 13 | { 14 | /// 15 | /// Number of days to retain flow log records. 16 | /// 17 | [JsonPropertyName("days")] 18 | public int Days { get; set; } 19 | 20 | /// 21 | /// Flag to enable/disable retention. 22 | /// 23 | [JsonPropertyName("enabled")] 24 | public bool Enabled { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ServiceDelegationPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ServiceDelegationPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ServiceDelegationPropertiesFormat 13 | { 14 | /// 15 | /// The name of the service to whom the subnet should be delegated (e.g. Microsoft.Sql/servers). 16 | /// 17 | [JsonPropertyName("serviceName")] 18 | public string ServiceName { get; set; } 19 | 20 | /// 21 | /// The actions permitted to the service upon delegation. 22 | /// 23 | [JsonPropertyName("actions")] 24 | public IList Actions { get; set; } 25 | 26 | /// 27 | /// The provisioning state of the service delegation resource. 28 | /// 29 | [JsonPropertyName("provisioningState")] 30 | public string ProvisioningState { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/ServiceEndpointPropertiesFormat.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// ServiceEndpointPropertiesFormat 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ServiceEndpointPropertiesFormat 13 | { 14 | /// 15 | /// The type of the endpoint service. 16 | /// 17 | [JsonPropertyName("service")] 18 | public string Service { get; set; } 19 | 20 | /// 21 | /// A list of locations. 22 | /// 23 | [JsonPropertyName("locations")] 24 | public IList Locations { get; set; } 25 | 26 | /// 27 | /// The provisioning state of the service endpoint resource. 28 | /// 29 | [JsonPropertyName("provisioningState")] 30 | public string ProvisioningState { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/Sku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// Sku 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class Sku 13 | { 14 | /// 15 | /// The name of this Bastion Host. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/SubResource.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// SubResource 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SubResource 13 | { 14 | /// 15 | /// Resource ID. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/TrafficAnalyticsProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Network 7 | { 8 | /// 9 | /// TrafficAnalyticsProperties 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class TrafficAnalyticsProperties 13 | { 14 | /// 15 | /// Parameters that define the configuration of traffic analytics. 16 | /// 17 | [JsonPropertyName("networkWatcherFlowAnalyticsConfiguration")] 18 | public TrafficAnalyticsConfigurationProperties NetworkWatcherFlowAnalyticsConfiguration { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/VirtualNetworkBgpCommunities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Network 8 | { 9 | /// 10 | /// VirtualNetworkBgpCommunities 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class VirtualNetworkBgpCommunities 14 | { 15 | /// 16 | /// The BGP community associated with the virtual network. 17 | /// 18 | [Required] 19 | [JsonPropertyName("virtualNetworkCommunity")] 20 | public string VirtualNetworkCommunity { get; set; } 21 | 22 | /// 23 | /// The BGP community associated with the region of the virtual network. 24 | /// 25 | [JsonPropertyName("regionalCommunity")] 26 | public string RegionalCommunity { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Network/VirtualNetworkEncryption.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Network 8 | { 9 | /// 10 | /// VirtualNetworkEncryption 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class VirtualNetworkEncryption 14 | { 15 | /// 16 | /// Indicates if encryption is enabled on the virtual network. 17 | /// 18 | [Required] 19 | [JsonPropertyName("enabled")] 20 | public bool Enabled { get; set; } 21 | 22 | /// 23 | /// If the encrypted VNet allows VM that does not support encryption 24 | /// 25 | [JsonPropertyName("enforcement")] 26 | public string Enforcement { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Sql/DatabaseIdentity.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Sql 7 | { 8 | /// 9 | /// DatabaseIdentity 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class DatabaseIdentity 13 | { 14 | /// 15 | /// The identity type 16 | /// 17 | [JsonPropertyName("type")] 18 | public string Type { get; set; } 19 | 20 | /// 21 | /// The Azure Active Directory tenant id. 22 | /// 23 | [JsonPropertyName("tenantId")] 24 | public string TenantId { get; set; } 25 | 26 | /// 27 | /// The resource ids of the user assigned identities to use 28 | /// 29 | [JsonPropertyName("userAssignedIdentities")] 30 | public DatabaseIdentityUserAssignedIdentities UserAssignedIdentities { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Sql/DatabaseIdentityUserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Sql 6 | { 7 | /// 8 | /// DatabaseIdentityUserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class DatabaseIdentityUserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Sql/PrivateEndpointProperty.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Sql 7 | { 8 | /// 9 | /// PrivateEndpointProperty 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateEndpointProperty 13 | { 14 | /// 15 | /// Resource id of the private endpoint. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Sql/ResourceIdentityUserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Sql 6 | { 7 | /// 8 | /// ResourceIdentityUserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class ResourceIdentityUserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Sql/ServerPrivateEndpointConnection.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Sql 7 | { 8 | /// 9 | /// ServerPrivateEndpointConnection 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ServerPrivateEndpointConnection 13 | { 14 | /// 15 | /// Resource ID. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | 20 | /// 21 | /// Private endpoint connection properties 22 | /// 23 | [JsonPropertyName("properties")] 24 | public PrivateEndpointConnectionProperties Properties { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/BlobRestoreParameters.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// BlobRestoreParameters 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class BlobRestoreParameters 14 | { 15 | /// 16 | /// Restore blob to the specified time. 17 | /// 18 | [Required] 19 | [JsonPropertyName("timeToRestore")] 20 | public string TimeToRestore { get; set; } 21 | 22 | /// 23 | /// Blob ranges to restore. 24 | /// 25 | [Required] 26 | [JsonPropertyName("blobRanges")] 27 | public IList BlobRanges { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/BlobRestoreRange.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// BlobRestoreRange 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class BlobRestoreRange 14 | { 15 | /// 16 | /// Blob start range. This is inclusive. Empty means account start. 17 | /// 18 | [Required] 19 | [JsonPropertyName("startRange")] 20 | public string StartRange { get; set; } 21 | 22 | /// 23 | /// Blob end range. This is exclusive. Empty means account end. 24 | /// 25 | [Required] 26 | [JsonPropertyName("endRange")] 27 | public string EndRange { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/CustomDomain.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// CustomDomain 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class CustomDomain 14 | { 15 | /// 16 | /// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. 17 | /// 18 | [Required] 19 | [JsonPropertyName("name")] 20 | public string Name { get; set; } 21 | 22 | /// 23 | /// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. 24 | /// 25 | [JsonPropertyName("useSubDomainName")] 26 | public bool UseSubDomainName { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/EncryptionIdentity.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// EncryptionIdentity 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class EncryptionIdentity 13 | { 14 | /// 15 | /// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. 16 | /// 17 | [JsonPropertyName("userAssignedIdentity")] 18 | public string UserAssignedIdentity { get; set; } 19 | 20 | /// 21 | /// ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. 22 | /// 23 | [JsonPropertyName("federatedIdentityClientId")] 24 | public string FederatedIdentityClientId { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/ExtendedLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// ExtendedLocation 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ExtendedLocation 13 | { 14 | /// 15 | /// The name of the extended location. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// The type of the extended location. 22 | /// 23 | [JsonPropertyName("type")] 24 | public string Type { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/IPRule.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// IPRule 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class IPRule 14 | { 15 | /// 16 | /// Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. 17 | /// 18 | [Required] 19 | [JsonPropertyName("value")] 20 | public string Value { get; set; } 21 | 22 | /// 23 | /// The action of IP ACL rule. 24 | /// 25 | [JsonPropertyName("action")] 26 | public string Action { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/IdentityUserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Storage 6 | { 7 | /// 8 | /// IdentityUserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class IdentityUserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/KeyCreationTime.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// KeyCreationTime 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class KeyCreationTime 13 | { 14 | [JsonPropertyName("key1")] 15 | public string Key1 { get; set; } 16 | [JsonPropertyName("key2")] 17 | public string Key2 { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/KeyPolicy.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// KeyPolicy 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class KeyPolicy 14 | { 15 | /// 16 | /// The key expiration period in days. 17 | /// 18 | [Required] 19 | [JsonPropertyName("keyExpirationPeriodInDays")] 20 | public int KeyExpirationPeriodInDays { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/PrivateEndpoint.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// PrivateEndpoint 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateEndpoint 13 | { 14 | /// 15 | /// The ARM identifier for Private Endpoint 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/PrivateLinkServiceConnectionState.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// PrivateLinkServiceConnectionState 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class PrivateLinkServiceConnectionState 13 | { 14 | /// 15 | /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. 16 | /// 17 | [JsonPropertyName("status")] 18 | public string Status { get; set; } 19 | 20 | /// 21 | /// The reason for approval/rejection of the connection. 22 | /// 23 | [JsonPropertyName("description")] 24 | public string Description { get; set; } 25 | 26 | /// 27 | /// A message indicating if changes on the service provider require any updates on the consumer. 28 | /// 29 | [JsonPropertyName("actionRequired")] 30 | public string ActionRequired { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/ResourceAccessRule.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// ResourceAccessRule 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ResourceAccessRule 13 | { 14 | /// 15 | /// Tenant Id 16 | /// 17 | [JsonPropertyName("tenantId")] 18 | public string TenantId { get; set; } 19 | 20 | /// 21 | /// Resource Id 22 | /// 23 | [JsonPropertyName("resourceId")] 24 | public string ResourceId { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/SasPolicy.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// SasPolicy 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class SasPolicy 14 | { 15 | /// 16 | /// The SAS expiration period, DD.HH:MM:SS. 17 | /// 18 | [Required] 19 | [JsonPropertyName("sasExpirationPeriod")] 20 | public string SasExpirationPeriod { get; set; } 21 | 22 | /// 23 | /// The SAS expiration action. Can only be Log. 24 | /// 25 | [Required] 26 | [JsonPropertyName("expirationAction")] 27 | public string ExpirationAction { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/Sku.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// Sku 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class Sku 14 | { 15 | /// 16 | /// The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. 17 | /// 18 | [Required] 19 | [JsonPropertyName("name")] 20 | public string Name { get; set; } 21 | 22 | /// 23 | /// The SKU tier. This is based on the SKU name. 24 | /// 25 | [JsonPropertyName("tier")] 26 | public string Tier { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/StorageAccountInternetEndpoints.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Storage 7 | { 8 | /// 9 | /// StorageAccountInternetEndpoints 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class StorageAccountInternetEndpoints 13 | { 14 | /// 15 | /// Gets the blob endpoint. 16 | /// 17 | [JsonPropertyName("blob")] 18 | public string Blob { get; set; } 19 | 20 | /// 21 | /// Gets the file endpoint. 22 | /// 23 | [JsonPropertyName("file")] 24 | public string File { get; set; } 25 | 26 | /// 27 | /// Gets the web endpoint. 28 | /// 29 | [JsonPropertyName("web")] 30 | public string Web { get; set; } 31 | 32 | /// 33 | /// Gets the dfs endpoint. 34 | /// 35 | [JsonPropertyName("dfs")] 36 | public string Dfs { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Storage/VirtualNetworkRule.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.ComponentModel.DataAnnotations; 5 | using System.Text.Json.Serialization; 6 | 7 | namespace AzureDesignStudio.AzureResources.Storage 8 | { 9 | /// 10 | /// VirtualNetworkRule 11 | /// 12 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 13 | public partial class VirtualNetworkRule 14 | { 15 | /// 16 | /// Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. 17 | /// 18 | [Required] 19 | [JsonPropertyName("id")] 20 | public string Id { get; set; } 21 | 22 | /// 23 | /// The action of virtual network rule. 24 | /// 25 | [JsonPropertyName("action")] 26 | public string Action { get; set; } 27 | 28 | /// 29 | /// Gets the state of virtual network rule. 30 | /// 31 | [JsonPropertyName("state")] 32 | public string State { get; set; } 33 | } 34 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/ApiDefinitionInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// ApiDefinitionInfo 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApiDefinitionInfo 13 | { 14 | /// 15 | /// The URL of the API definition. 16 | /// 17 | [JsonPropertyName("url")] 18 | public string Url { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/ApiManagementConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// ApiManagementConfig 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ApiManagementConfig 13 | { 14 | /// 15 | /// APIM-Api Identifier. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/AutoHealActions.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// AutoHealActions 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AutoHealActions 13 | { 14 | /// 15 | /// Predefined action to be taken. 16 | /// 17 | [JsonPropertyName("actionType")] 18 | public string ActionType { get; set; } 19 | 20 | /// 21 | /// Custom action to be taken. 22 | /// 23 | [JsonPropertyName("customAction")] 24 | public AutoHealCustomAction CustomAction { get; set; } 25 | 26 | /// 27 | /// Minimum time the process must execute 28 | [JsonPropertyName("minProcessExecutionTime")] 29 | public string MinProcessExecutionTime { get; set; } 30 | } 31 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/AutoHealCustomAction.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// AutoHealCustomAction 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AutoHealCustomAction 13 | { 14 | /// 15 | /// Executable to be run. 16 | /// 17 | [JsonPropertyName("exe")] 18 | public string Exe { get; set; } 19 | 20 | /// 21 | /// Parameters for the executable. 22 | /// 23 | [JsonPropertyName("parameters")] 24 | public string Parameters { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/AutoHealRules.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// AutoHealRules 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class AutoHealRules 13 | { 14 | /// 15 | /// Conditions that describe when to execute the auto-heal actions. 16 | /// 17 | [JsonPropertyName("triggers")] 18 | public AutoHealTriggers Triggers { get; set; } 19 | 20 | /// 21 | /// Actions to be executed when a rule is triggered. 22 | /// 23 | [JsonPropertyName("actions")] 24 | public AutoHealActions Actions { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/Capability.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// Capability 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class Capability 13 | { 14 | /// 15 | /// Name of the SKU capability. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Value of the SKU capability. 22 | /// 23 | [JsonPropertyName("value")] 24 | public string Value { get; set; } 25 | 26 | /// 27 | /// Reason of the SKU capability. 28 | /// 29 | [JsonPropertyName("reason")] 30 | public string Reason { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/CloningInfoAppSettingsOverrides.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Web 6 | { 7 | /// 8 | /// CloningInfoAppSettingsOverrides 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class CloningInfoAppSettingsOverrides 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/ConnStringInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// ConnStringInfo 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ConnStringInfo 13 | { 14 | /// 15 | /// Name of connection string. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Connection string value. 22 | /// 23 | [JsonPropertyName("connectionString")] 24 | public string ConnectionString { get; set; } 25 | 26 | /// 27 | /// Type of database. 28 | /// 29 | [JsonPropertyName("type")] 30 | public string Type { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/CorsSettings.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// CorsSettings 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class CorsSettings 13 | { 14 | /// 15 | /// Gets or sets the list of origins that should be allowed to make cross-origin 16 | [JsonPropertyName("allowedOrigins")] 17 | public IList AllowedOrigins { get; set; } 18 | 19 | /// 20 | /// Gets or sets whether CORS requests with credentials are allowed. See 21 | [JsonPropertyName("supportCredentials")] 22 | public bool SupportCredentials { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/Experiments.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// Experiments 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class Experiments 13 | { 14 | /// 15 | /// List of ramp-up rules. 16 | /// 17 | [JsonPropertyName("rampUpRules")] 18 | public IList RampUpRules { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/ExtendedLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// ExtendedLocation 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class ExtendedLocation 13 | { 14 | /// 15 | /// Name of extended location. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Type of extended location. 22 | /// 23 | [JsonPropertyName("type")] 24 | public string Type { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/HandlerMapping.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// HandlerMapping 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class HandlerMapping 13 | { 14 | /// 15 | /// Requests with this extension will be handled using the specified FastCGI application. 16 | /// 17 | [JsonPropertyName("extension")] 18 | public string Extension { get; set; } 19 | 20 | /// 21 | /// The absolute path to the FastCGI application. 22 | /// 23 | [JsonPropertyName("scriptProcessor")] 24 | public string ScriptProcessor { get; set; } 25 | 26 | /// 27 | /// Command-line arguments to be passed to the script processor. 28 | /// 29 | [JsonPropertyName("arguments")] 30 | public string Arguments { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/HostingEnvironmentProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// HostingEnvironmentProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class HostingEnvironmentProfile 13 | { 14 | /// 15 | /// Resource ID of the App Service Environment. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | 20 | /// 21 | /// Name of the App Service Environment. 22 | /// 23 | [JsonPropertyName("name")] 24 | public string Name { get; set; } 25 | 26 | /// 27 | /// Resource type of the App Service Environment. 28 | /// 29 | [JsonPropertyName("type")] 30 | public string Type { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/IpSecurityRestrictionHeaders.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Web 6 | { 7 | /// 8 | /// IpSecurityRestrictionHeaders 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class IpSecurityRestrictionHeaders 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/KubeEnvironmentProfile.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// KubeEnvironmentProfile 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class KubeEnvironmentProfile 13 | { 14 | /// 15 | /// Resource ID of the Kubernetes Environment. 16 | /// 17 | [JsonPropertyName("id")] 18 | public string Id { get; set; } 19 | 20 | /// 21 | /// Name of the Kubernetes Environment. 22 | /// 23 | [JsonPropertyName("name")] 24 | public string Name { get; set; } 25 | 26 | /// 27 | /// Resource type of the Kubernetes Environment. 28 | /// 29 | [JsonPropertyName("type")] 30 | public string Type { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/ManagedServiceIdentityUserAssignedIdentities.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Web 6 | { 7 | /// 8 | /// ManagedServiceIdentityUserAssignedIdentities 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class ManagedServiceIdentityUserAssignedIdentities 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/NameValuePair.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// NameValuePair 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class NameValuePair 13 | { 14 | /// 15 | /// Pair name. 16 | /// 17 | [JsonPropertyName("name")] 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Pair value. 22 | /// 23 | [JsonPropertyName("value")] 24 | public string Value { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/RequestsBasedTrigger.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// RequestsBasedTrigger 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class RequestsBasedTrigger 13 | { 14 | /// 15 | /// Request Count. 16 | /// 17 | [JsonPropertyName("count")] 18 | public int Count { get; set; } 19 | 20 | /// 21 | /// Time interval. 22 | /// 23 | [JsonPropertyName("timeInterval")] 24 | public string TimeInterval { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/SiteConfigAzureStorageAccounts.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | 5 | namespace AzureDesignStudio.AzureResources.Web 6 | { 7 | /// 8 | /// SiteConfigAzureStorageAccounts 9 | /// 10 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 11 | public partial class SiteConfigAzureStorageAccounts 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/SiteLimits.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// SiteLimits 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SiteLimits 13 | { 14 | /// 15 | /// Maximum allowed CPU usage percentage. 16 | /// 17 | [JsonPropertyName("maxPercentageCpu")] 18 | public int MaxPercentageCpu { get; set; } 19 | 20 | /// 21 | /// Maximum allowed memory usage in MB. 22 | /// 23 | [JsonPropertyName("maxMemoryInMb")] 24 | public int MaxMemoryInMb { get; set; } 25 | 26 | /// 27 | /// Maximum allowed disk size usage in MB. 28 | /// 29 | [JsonPropertyName("maxDiskSizeInMb")] 30 | public int MaxDiskSizeInMb { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/SiteMachineKey.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// SiteMachineKey 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SiteMachineKey 13 | { 14 | /// 15 | /// MachineKey validation. 16 | /// 17 | [JsonPropertyName("validation")] 18 | public string Validation { get; set; } 19 | 20 | /// 21 | /// Validation key. 22 | /// 23 | [JsonPropertyName("validationKey")] 24 | public string ValidationKey { get; set; } 25 | 26 | /// 27 | /// Algorithm used for decryption. 28 | /// 29 | [JsonPropertyName("decryption")] 30 | public string Decryption { get; set; } 31 | 32 | /// 33 | /// Decryption key. 34 | /// 35 | [JsonPropertyName("decryptionKey")] 36 | public string DecryptionKey { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/SlotSwapStatus.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// SlotSwapStatus 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SlotSwapStatus 13 | { 14 | /// 15 | /// The time the last successful slot swap completed. 16 | /// 17 | [JsonPropertyName("timestampUtc")] 18 | public string TimestampUtc { get; set; } 19 | 20 | /// 21 | /// The source slot of the last swap operation. 22 | /// 23 | [JsonPropertyName("sourceSlotName")] 24 | public string SourceSlotName { get; set; } 25 | 26 | /// 27 | /// The destination slot of the last swap operation. 28 | /// 29 | [JsonPropertyName("destinationSlotName")] 30 | public string DestinationSlotName { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/SlowRequestsBasedTrigger.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// SlowRequestsBasedTrigger 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SlowRequestsBasedTrigger 13 | { 14 | /// 15 | /// Time taken. 16 | /// 17 | [JsonPropertyName("timeTaken")] 18 | public string TimeTaken { get; set; } 19 | 20 | /// 21 | /// Request Path. 22 | /// 23 | [JsonPropertyName("path")] 24 | public string Path { get; set; } 25 | 26 | /// 27 | /// Request Count. 28 | /// 29 | [JsonPropertyName("count")] 30 | public int Count { get; set; } 31 | 32 | /// 33 | /// Time interval. 34 | /// 35 | [JsonPropertyName("timeInterval")] 36 | public string TimeInterval { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/StatusCodesRangeBasedTrigger.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// StatusCodesRangeBasedTrigger 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class StatusCodesRangeBasedTrigger 13 | { 14 | /// 15 | /// HTTP status code. 16 | /// 17 | [JsonPropertyName("statusCodes")] 18 | public string StatusCodes { get; set; } 19 | [JsonPropertyName("path")] 20 | public string Path { get; set; } 21 | 22 | /// 23 | /// Request Count. 24 | /// 25 | [JsonPropertyName("count")] 26 | public int Count { get; set; } 27 | 28 | /// 29 | /// Time interval. 30 | /// 31 | [JsonPropertyName("timeInterval")] 32 | public string TimeInterval { get; set; } 33 | } 34 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/SwiftVirtualNetworkProperties.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// SwiftVirtualNetworkProperties 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class SwiftVirtualNetworkProperties 13 | { 14 | /// 15 | /// The Virtual Network subnet's resource ID. This is the subnet that this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined first. 16 | /// 17 | [JsonPropertyName("subnetResourceId")] 18 | public string SubnetResourceId { get; set; } 19 | 20 | /// 21 | /// A flag that specifies if the scale unit this Web App is on supports Swift integration. 22 | /// 23 | [JsonPropertyName("swiftSupported")] 24 | public bool SwiftSupported { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.AzureResources/Web/VirtualDirectory.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the MIT License. See LICENSE in the project root for license information. 2 | 3 | using System.CodeDom.Compiler; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.AzureResources.Web 7 | { 8 | /// 9 | /// VirtualDirectory 10 | /// 11 | [GeneratedCode("ArmTypeGenerator", "0.2.1.52938")] 12 | public partial class VirtualDirectory 13 | { 14 | /// 15 | /// Path to virtual application. 16 | /// 17 | [JsonPropertyName("virtualPath")] 18 | public string VirtualPath { get; set; } 19 | 20 | /// 21 | /// Physical path. 22 | /// 23 | [JsonPropertyName("physicalPath")] 24 | public string PhysicalPath { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core.Tests/AzureDesignStudio.Core.Tests.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net7.0 5 | enable 6 | 7 | false 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | runtime; build; native; contentfiles; analyzers; buildtransitive 17 | all 18 | 19 | 20 | runtime; build; native; contentfiles; analyzers; buildtransitive 21 | all 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Attributes/MapToDtoAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace AzureDesignStudio.Core.Attributes 2 | { 3 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct 4 | | AttributeTargets.Property | AttributeTargets.Field)] 5 | internal class MapToDtoAttribute : Attribute 6 | { 7 | public string DtoBase = default!; 8 | public string TypeKey = default!; // Only for class 9 | public string DtoPropertyType = default!; // Only for property 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Common/AdsConstants.cs: -------------------------------------------------------------------------------- 1 | namespace AzureDesignStudio.Core.Common 2 | { 3 | public static class AdsConstants 4 | { 5 | // Type keys for Azure resources 6 | public const string ResourceGroup = "resource-group"; 7 | public const string StorageAccount = "storage-account"; 8 | public const string VirtualNetwork = "virtual-network"; 9 | public const string VirtualMachine = "virtual-machine"; 10 | public const string Subnet = "subnet"; 11 | public const string AzureFirewall = "azure-firewall"; 12 | public const string Bastions = "azure-bastions"; 13 | public const string PublicIp = "public-ip"; 14 | public const string SqlServer = "sql-server"; 15 | public const string SqlDatabase = "sql-database"; 16 | public const string AppServicePlan = "appservice-plan"; 17 | public const string FunctionApp = "function-app"; 18 | public const string WebApp = "web-app"; 19 | public const string AKSCluster = "aks-cluster"; 20 | public const string APIM = "apim"; 21 | public const string AppGateway = "app-gateway"; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Common/ResourceBaseJsonConverter.cs: -------------------------------------------------------------------------------- 1 | using AzureDesignStudio.AzureResources.Base; 2 | using System.Text.Json; 3 | using System.Text.Json.Serialization; 4 | 5 | namespace AzureDesignStudio.Core.Common 6 | { 7 | public class ResourceBaseJsonConverter : JsonConverter 8 | { 9 | public override ResourceBase Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) 10 | => throw new NotImplementedException(); 11 | 12 | public override void Write(Utf8JsonWriter writer, ResourceBase value, JsonSerializerOptions options) 13 | => JsonSerializer.Serialize(writer, value, value.GetType(), options); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Components/AzureGroupComponent.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Models 2 | @using Blazor.Diagrams.Core.Geometry 3 | @using Blazor.Diagrams.Components.Groups 4 | @using Blazor.Diagrams.Components.Renderers 5 | @using Blazor.Diagrams.Core.Models 6 | @using Microsoft.Extensions.Configuration 7 | @inject IConfiguration configuration 8 | 9 |
10 | 11 | @if (!string.IsNullOrEmpty(Group.ImagePath)) 12 | { 13 | @Group.Name 14 | } 15 | @Group.Name 16 | @if (!Group.IsValid) 17 | { 18 | 19 | } 20 | @foreach (var port in Group.Ports) 21 | { 22 | 23 | } 24 | 25 | 26 | 27 |
28 | 29 | @code { 30 | [Parameter] 31 | public AzureGroupBase Group { get; set; } = null!; 32 | } 33 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Components/AzureNodeComponent.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Models 2 | @using Blazor.Diagrams.Components.Renderers 3 | @using Blazor.Diagrams.Core.Models 4 | @using Microsoft.Extensions.Logging 5 | @using Microsoft.Extensions.Configuration 6 | @inject IConfiguration configuration 7 | @inject ILogger logger 8 | 9 |
10 | @Node.Name 11 |
@Node.Name
12 | @if (!Node.IsValid) 13 | { 14 | 15 | } 16 | @foreach (var port in Node.Ports) 17 | { 18 | 19 | } 20 |
21 | 22 | @code { 23 | [Parameter] 24 | public AzureNodeBase Node { get; set; } = null!; 25 | } 26 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Components/NameAndLocation.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Models 2 | 3 | 5 | 6 | 7 | 9 | @if (!Node.UseResourceGroupLocation) 10 | { 11 | 16 | } 17 | 18 | 19 | @code { 20 | [Parameter] 21 | public IAzureResource Node { get; set; } = null!; 22 | } 23 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Compute/VirtualMachineForm.razor: -------------------------------------------------------------------------------- 1 | 

VirtualMachineForm

2 | 3 | @code { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Compute/VirtualMachineModel.cs: -------------------------------------------------------------------------------- 1 | using AzureDesignStudio.AzureResources.Base; 2 | using AzureDesignStudio.AzureResources.Compute; 3 | using AzureDesignStudio.Core.Models; 4 | using Blazor.Diagrams.Core.Models; 5 | 6 | namespace AzureDesignStudio.Core.Compute 7 | { 8 | public class VirtualMachineModel : AzureNodeBase 9 | { 10 | public VirtualMachineModel() 11 | { 12 | AddPort(PortAlignment.Left); 13 | AddPort(PortAlignment.Top); 14 | AddPort(PortAlignment.Right); 15 | AddPort(PortAlignment.Bottom); 16 | } 17 | public override string ServiceName => "Virtual Machine"; 18 | public override Type? DataFormType => typeof(VirtualMachineForm); 19 | private readonly VirtualMachines _vm = new(); 20 | protected override ResourceBase ArmResource => _vm; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/DTO/AzureNodeDto.cs: -------------------------------------------------------------------------------- 1 | using Blazor.Diagrams.Core.Geometry; 2 | 3 | namespace AzureDesignStudio.Core.DTO 4 | { 5 | public class AzureNodeDto 6 | { 7 | public string TypeKey { get; set; } = string.Empty; 8 | public string ImagePath { get; set; } = string.Empty; 9 | // Key data from NodeModel 10 | public string Id { get; set; } = string.Empty; 11 | public bool Locked { get; set; } 12 | public Point Position { get; set; } = Point.Zero; 13 | public Size Size { get; set; } = Size.Zero; 14 | public string GroupId { get; set; } = string.Empty; 15 | // Data for Azure resources 16 | public string Name { get; set; } = string.Empty; 17 | public string Location { get; set; } = string.Empty; 18 | public bool UseResourceGroupLocation { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/DTO/DiagramGraph.cs: -------------------------------------------------------------------------------- 1 | namespace AzureDesignStudio.Core.DTO 2 | { 3 | public class DiagramGraph 4 | { 5 | // Use `object` for Json serialziation. https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-polymorphism 6 | public IList Groups { get; set; } = new List(); 7 | public IList Nodes { get; set; } = new List(); 8 | public IList Links { get; set; } = new List(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/DTO/LinkModelDto.cs: -------------------------------------------------------------------------------- 1 | using Blazor.Diagrams.Core.Models; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace AzureDesignStudio.Core.DTO 9 | { 10 | public class LinkModelDto 11 | { 12 | //public string Id { get; set; } = string.Empty; 13 | public string SourcePortParentId { get; set; } = string.Empty; 14 | public PortAlignment SourcePortAlignment { get; set; } 15 | public string TargetPortParentId { get; set; } = string.Empty; 16 | public PortAlignment TargetPortAlignment { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Models/IArmTemplate.cs: -------------------------------------------------------------------------------- 1 | using AzureDesignStudio.AzureResources.Base; 2 | 3 | namespace AzureDesignStudio.Core.Models 4 | { 5 | public interface IArmTemplate 6 | { 7 | DeploymentTemplate Template { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Models/IAzureNode.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | using AzureDesignStudio.Core.DTO; 3 | using Blazor.Diagrams.Core.Models; 4 | 5 | namespace AzureDesignStudio.Core.Models 6 | { 7 | public interface IAzureNode 8 | { 9 | string ServiceName { get; } 10 | Type? DataFormType { get; } 11 | string CssClassName { get; } 12 | bool IsValid { get; } 13 | bool DataFormNoPadding { get; } 14 | string ImagePath { get; set; } 15 | AzureNodeDto GetNodeDto(IMapper mapper); 16 | (bool result, string message) IsDrappable(GroupModel overlappedGroup); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Models/IAzureResource.cs: -------------------------------------------------------------------------------- 1 | using AzureDesignStudio.AzureResources.Base; 2 | using System.ComponentModel; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Text.Json.Serialization; 5 | 6 | namespace AzureDesignStudio.Core.Models 7 | { 8 | public interface IAzureResource 9 | { 10 | [JsonPropertyName("id")] 11 | string ResourceId { get; } 12 | [Required, DisplayName("Name")] 13 | string Name { get; set; } 14 | [Required] 15 | string Location { get; set; } 16 | [Required, DisplayName("Region")] 17 | bool UseResourceGroupLocation { get; set; } 18 | IList GetArmResources(); 19 | IDictionary GetArmParameters(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Network/BastionsForm.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Models 2 | @using Blazor.Diagrams.Core 3 | @using Blazor.Diagrams.Core.Models 4 | @using AzureDesignStudio.Core.Components 5 | 6 |
7 | 8 | @* 9 | 10 | Basic 11 | Standard 12 | 13 | 14 | 15 | 16 | *@ 17 | 18 | 19 | @code { 20 | [CascadingParameter] 21 | public NodeModel Node { get; set; } = null!; 22 | [CascadingParameter] 23 | public Diagram Diagram { get; set; } = null!; 24 | 25 | private BastionsModel bastion => (BastionsModel)Node; 26 | } 27 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Network/VirtualNetworkPort.cs: -------------------------------------------------------------------------------- 1 | using Blazor.Diagrams.Core.Geometry; 2 | using Blazor.Diagrams.Core.Models; 3 | 4 | namespace AzureDesignStudio.Core.Network 5 | { 6 | public class VirtualNetworkPort : PortModel 7 | { 8 | public VirtualNetworkPort(NodeModel parent, PortAlignment alignment, Point? position = null, Size? size = null) 9 | : base(parent, alignment, position, size) 10 | { 11 | } 12 | 13 | public override bool CanAttachTo(PortModel port) 14 | { 15 | if (!base.CanAttachTo(port) || port is not VirtualNetworkPort) 16 | return false; 17 | 18 | foreach (var sibling in Parent.Ports) 19 | { 20 | // Only one vnet-peering can be established. 21 | if (sibling.Links.Any(l => l.SourcePort?.Parent.Id == port.Parent.Id 22 | || l.TargetPort?.Parent.Id == port.Parent.Id)) 23 | return false; 24 | } 25 | 26 | return true; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/SQL/SqlDatabaseForm.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Components 2 | @using Blazor.Diagrams.Core 3 | @using Blazor.Diagrams.Core.Models 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | @code { 16 | [CascadingParameter] 17 | public NodeModel Node { get; set; } = null!; 18 | [CascadingParameter] 19 | public Diagram Diagram { get; set; } = null!; 20 | 21 | private SqlDatabaseModel sqlDatabase => (Node as SqlDatabaseModel)!; 22 | } 23 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/SQL/SqlServerForm.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Components 2 | @using Blazor.Diagrams.Core 3 | @using Blazor.Diagrams.Core.Models 4 | 5 |
6 | 7 | 8 | 9 | @code { 10 | [CascadingParameter] 11 | public NodeModel Node { get; set; } = null!; 12 | [CascadingParameter] 13 | public Diagram Diagram { get; set; } = null!; 14 | 15 | private SqlServerModel sqlServer => (Node as SqlServerModel)!; 16 | } 17 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Storage/StorageAccountForm.razor: -------------------------------------------------------------------------------- 1 | 

StorageAccountForm

2 | 3 | @code { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Web/AppServicePlanForm.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Components 2 | @using Blazor.Diagrams.Core 3 | @using Blazor.Diagrams.Core.Models 4 | 5 |
6 | 7 | 8 | 9 | @code { 10 | [CascadingParameter] 11 | public NodeModel Node { get; set; } = null!; 12 | [CascadingParameter] 13 | public Diagram Diagram { get; set; } = null!; 14 | 15 | private AppServicePlanModel appsvcPlan => (Node as AppServicePlanModel)!; 16 | 17 | private void HandleOSChange(string value) 18 | { 19 | foreach(var child in appsvcPlan.Children) 20 | { 21 | if (child is WebAppModel w) 22 | { 23 | w.RuntimeStack = null!; 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/Web/FunctionAppForm.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Core.Network 2 | @inherits WebAppForm 3 | 4 | @{ 5 | base.BuildRenderTree(__builder); 6 | } 7 | 8 | @code { 9 | private FunctionAppModel funcApp = null!; 10 | protected override void OnInitialized() 11 | { 12 | funcApp = (Node as FunctionAppModel)!; 13 | 14 | ChildContent = 15 | @ 16 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | ; 26 | 27 | base.OnInitialized(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Core/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | @using AntDesign; -------------------------------------------------------------------------------- /src/AzureDesignStudio.Server/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "6.0.4", 7 | "commands": [ 8 | "dotnet-ef" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.Server/Pages/Error.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model AzureDesignStudio.Server.Pages.ErrorModel 3 | @{ 4 | ViewData["Title"] = "Error"; 5 | } 6 | 7 |

Error.

8 |

An error occurred while processing your request.

9 | 10 | @if (Model.ShowRequestId) 11 | { 12 |

13 | Request ID: @Model.RequestId 14 |

15 | } 16 | 17 |

Development Mode

18 |

19 | Swapping to the Development environment displays detailed information about the error that occurred. 20 |

21 |

22 | The Development environment shouldn't be enabled for deployed applications. 23 | It can result in displaying sensitive information from exceptions to end users. 24 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 25 | and restarting the app. 26 |

27 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Server/Pages/Error.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Microsoft.AspNetCore.Mvc.RazorPages; 3 | using System.Diagnostics; 4 | 5 | namespace AzureDesignStudio.Server.Pages 6 | { 7 | [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] 8 | [IgnoreAntiforgeryToken] 9 | public class ErrorModel : PageModel 10 | { 11 | public string? RequestId { get; set; } 12 | 13 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 14 | 15 | private readonly ILogger _logger; 16 | 17 | public ErrorModel(ILogger logger) 18 | { 19 | _logger = logger; 20 | } 21 | 22 | public void OnGet() 23 | { 24 | RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.Server/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:44698", 7 | "sslPort": 44367 8 | } 9 | }, 10 | "profiles": { 11 | "AzureDesignStudio.Server": { 12 | "commandName": "Project", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | }, 17 | "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", 18 | "applicationUrl": "https://localhost:7203;http://localhost:5203", 19 | "dotnetRunMessages": true 20 | }, 21 | "IIS Express": { 22 | "commandName": "IISExpress", 23 | "launchBrowser": true, 24 | "environmentVariables": { 25 | "ASPNETCORE_ENVIRONMENT": "Development" 26 | } 27 | }, 28 | "Docker": { 29 | "commandName": "Docker", 30 | "launchBrowser": true, 31 | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", 32 | "publishAllPorts": true, 33 | "useSSL": true 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.Server/Utils/AdsTelemetryInitializer.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.ApplicationInsights.Channel; 2 | using Microsoft.ApplicationInsights.Extensibility; 3 | 4 | namespace AzureDesignStudio.Server.Utils 5 | { 6 | public class AdsTelemetryInitializer : ITelemetryInitializer 7 | { 8 | public void Initialize(ITelemetry telemetry) 9 | { 10 | telemetry.Context.Cloud.RoleName = "ads-server"; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AzureAdB2C": { 3 | "Instance": "https://azdesignapp.b2clogin.com/", 4 | "ClientId": "", 5 | "Domain": "", 6 | "Scopes": "", 7 | "SignUpSignInPolicyId": "" 8 | }, 9 | "KeyVaultName": "", 10 | "KeyVaultKeyName": "", 11 | "ApplicationInsights": { 12 | "ConnectionString": "", 13 | "LogLevel": { 14 | "Default": "Information" 15 | } 16 | }, 17 | "Logging": { 18 | "LogLevel": { 19 | "Default": "Warning", 20 | "Microsoft.AspNetCore": "Warning" 21 | } 22 | }, 23 | "AllowedHosts": "*" 24 | } 25 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.SharedModels/design_view_model.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | option csharp_namespace = "AzureDesignStudio.SharedModels.Protos"; 4 | 5 | import "google/protobuf/empty.proto"; 6 | 7 | service Design { 8 | rpc Save(SaveDesignRequest) returns(SaveDesignResponse); 9 | rpc GetSaved(google.protobuf.Empty) returns(GetSavedDesignResponse); 10 | rpc Load(LoadDesignRequest) returns(LoadDesignResponse); 11 | rpc Delete(DeleteDesignRequest) returns(DeleteDesignResponse); 12 | } 13 | 14 | message SaveDesignRequest { 15 | string name = 1; 16 | string data = 2; 17 | } 18 | 19 | message SaveDesignResponse { 20 | int32 status_code = 1; 21 | } 22 | 23 | message GetSavedDesignResponse { 24 | int32 status_code = 1; 25 | repeated string names = 2; 26 | } 27 | 28 | message LoadDesignRequest { 29 | string name = 1; 30 | } 31 | 32 | message LoadDesignResponse { 33 | int32 status_code = 1; 34 | string data = 2; 35 | } 36 | 37 | message DeleteDesignRequest { 38 | string name = 1; 39 | } 40 | 41 | message DeleteDesignResponse { 42 | int32 status_code = 1; 43 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.SourceGeneration/Models/DtoTypeModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace AzureDesignStudio.SourceGeneration.Models 4 | { 5 | internal class DtoTypeProperty 6 | { 7 | public string Identifier { get; set; } = default!; 8 | public string Type { get; set; } = default!; 9 | } 10 | internal class DtoTypeModel 11 | { 12 | public string Namespace { get; set; } = default!; 13 | public string ClassName { get; set; } = default!; 14 | public string DtoBase { get; set; } = default!; 15 | public IList Usings { get; set; } = default!; 16 | public IList Properties { get; set; } = default!; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.SourceGeneration/Models/MapProfileModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AzureDesignStudio.SourceGeneration.Models 6 | { 7 | internal class MapModel 8 | { 9 | public string TypeKey { get; set; } = default!; 10 | public string SourceType { get; set; } = default!; 11 | public string DestinationType { get; set; } = default!; 12 | } 13 | internal class MapProfileModel 14 | { 15 | public IList Maps { get; set; } = default!; 16 | public HashSet Usings { get; set; } = default!; 17 | public string Namespace { get; set; } = default!; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AzureDesignStudio.SourceGeneration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/AzureDesignStudio.SourceGeneration/Templates/AzureNodeDto.scriban: -------------------------------------------------------------------------------- 1 | // 2 | // This code was generated by AzureDesignStudio.SourceGeneration. 3 | // Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. 4 | // 5 | 6 | {{ for using in Usings ~}} 7 | using {{ using }}; 8 | {{ end ~}} 9 | 10 | namespace {{ Namespace }} 11 | { 12 | public class {{ ClassName }} : {{ DtoBase }} 13 | { 14 | {{ for property in Properties ~}} 15 | public {{ property.Type }} {{ property.Identifier }} { get; set; } = default!; 16 | {{ end ~}} 17 | } 18 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio.SourceGeneration/Templates/AzureNodeProfile.scriban: -------------------------------------------------------------------------------- 1 | // 2 | // This code was generated by AzureDesignStudio.SourceGeneration. 3 | // Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. 4 | // 5 | 6 | {{ for using in Usings ~}} 7 | using {{ using }}; 8 | {{ end ~}} 9 | 10 | namespace {{ Namespace }} 11 | { 12 | public partial class AzureNodeProfile 13 | { 14 | private partial void CreateAzureNodeMaps() 15 | { 16 | {{~ for map in Maps }} 17 | {{ if !(map.TypeKey | string.empty) ~}} 18 | CreateMapForAzureNode<{{ map.SourceType }}, {{ map.DestinationType }}>({{ map.TypeKey}}); 19 | {{ end; end ~}} 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | @if (context.User.Identity?.IsAuthenticated != true) 7 | { 8 | 9 | } 10 | else 11 | { 12 |

You are not authorized to access this resource.

13 | } 14 |
15 |
16 | 17 |
18 | 19 | Not found 20 | 21 |

Sorry, there's nothing at this address.

22 |
23 |
24 |
25 | 26 | 27 |
-------------------------------------------------------------------------------- /src/AzureDesignStudio/Components/IconComponent.razor: -------------------------------------------------------------------------------- 1 | @inject IHttpClientFactory clientFactory 2 | 3 | 4 | 5 | @code { 6 | [Parameter] 7 | public string IconPath { get; set; } = null!; 8 | 9 | RenderFragment component = 10 | @
11 | ; 12 | 13 | protected override async Task OnInitializedAsync() 14 | { 15 | if (!string.IsNullOrEmpty(IconPath)) 16 | { 17 | var httpClient = clientFactory.CreateClient("AzureDesignStudio.ResourceAccess"); 18 | var svgMarkup = await httpClient.GetStringAsync(IconPath); 19 | component = builder => 20 | { 21 | builder.AddMarkupContent(0, svgMarkup); 22 | }; 23 | } 24 | 25 | await base.OnInitializedAsync(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Components/NodeDrawerTemplate.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Services 2 | @inject AdsContext adsContext 3 | 4 | 5 | 6 | @ChildContent 7 | 8 | 9 | 10 | @code { 11 | [Parameter] 12 | public NodeModel Node { get; set; } = null!; 13 | [Parameter] 14 | public RenderFragment ChildContent { get; set; } = 15 | @
; 16 | } 17 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Components/Stencil.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Models 2 | @using AzureDesignStudio.Services 3 | @inject ILogger logger 4 | @inject IConfiguration configuration 5 | @inject AdsContext adsContext 6 | 7 |
8 |
9 | @Model.Label 10 |
@Model.Label
11 |
12 |
13 | 14 | @code { 15 | [Parameter] 16 | public StencilModel Model { get; set; } = null!; 17 | 18 | void HandleDragStart(DragEventArgs e) 19 | { 20 | adsContext.DraggedStencilKey = Model.Key; 21 | logger.LogInformation($"Drag start. Key: {adsContext.DraggedStencilKey}"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Components/Stencil.razor.css: -------------------------------------------------------------------------------- 1 | .ads-stencil { 2 | display: table-cell; 3 | width: 69px; 4 | height: 71px; 5 | padding: 6px 6px 4px; 6 | } 7 | 8 | .ads-stencil:hover { 9 | background-color: lightgrey; 10 | } 11 | 12 | .ads-stencil > img { 13 | display: block; 14 | width: 69px; 15 | height: 45px; 16 | margin-left: auto; 17 | margin-right: auto; 18 | } 19 | 20 | .ads-stencil-label { 21 | text-align: center; 22 | font-size: 11px; 23 | overflow: hidden; 24 | white-space: nowrap; 25 | text-overflow: ellipsis; 26 | width: 69px; 27 | height: 26px; 28 | line-height: 26px; 29 | margin: auto; 30 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/Components/StencilPanel.razor.css: -------------------------------------------------------------------------------- 1 | ::deep .ads-icon-panel-container { 2 | clear: both; 3 | } 4 | 5 | ::deep .ads-icon-panel-container .ant-tabs-card .ant-tabs-tab { 6 | padding: 5px; 7 | } 8 | 9 | ::deep .ads-icon-panel-container .ant-tabs-left .ant-tabs-nav { 10 | min-width: 40px; 11 | } 12 | 13 | ::deep .ads-icon-panel-container>.ant-tabs-left> .ant-tabs-nav .ant-tabs-tab { 14 | padding: 6px 2px; 15 | } 16 | ::deep .ads-icon-panel-container .ant-tabs-tab .anticon { 17 | margin-right: 0px; 18 | } 19 | 20 | ::deep .ads-icon-panel-container .ant-tabs-tab-btn { 21 | font-size: 24px; 22 | width: 32px; 23 | line-height: 32px; 24 | } 25 | 26 | ::deep .ads-icon-panel-container .ant-tabs-left .ant-tabs-content-holder { 27 | border-top: 1px solid #f0f0f0; 28 | border-left: 1px solid #f0f0f0; 29 | border-bottom: 1px solid #f0f0f0; 30 | } 31 | 32 | ::deep .ads-icon-panel-container .ant-tabs-left .ant-tabs-content-holder .ant-tabs-content .ant-tabs-tabpane { 33 | padding-left: 0px; 34 | height: calc(100vh - 94px); 35 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/Components/TopMenu.razor.css: -------------------------------------------------------------------------------- 1 | ::deep .ant-menu-horizontal { 2 | background-color: #484644; 3 | color: #ffffff; 4 | border-bottom: 0px; 5 | } 6 | ::deep .ant-menu-horizontal .ant-menu-item { 7 | padding: 0px 12px; 8 | margin-top: 0px; 9 | float: right; 10 | } 11 | ::deep .ant-menu-horizontal .ant-menu-item:hover { 12 | background-color: #0e0d0d; 13 | color: #ffffff; 14 | } 15 | ::deep .ant-menu-horizontal > .ant-menu-item::after { 16 | display: none; 17 | } 18 | ::deep .ant-menu-horizontal .ant-menu-item-selected, 19 | ::deep .ant-menu-horizontal .ant-menu-item-selected:hover { 20 | color: #000000; 21 | background-color: #ffffff; 22 | } 23 | ::deep .ant-menu-horizontal .ant-menu-item .anticon { 24 | font-size: 24px; 25 | } 26 | 27 | ::deep .ant-menu-horizontal .ant-menu-item .anticon + span { 28 | margin-left: 3px; 29 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/Models/CodeDrawerContent.cs: -------------------------------------------------------------------------------- 1 | using AzureDesignStudio.Core.Models; 2 | 3 | namespace AzureDesignStudio.Models 4 | { 5 | public enum CodeDrawerContentType 6 | { 7 | Json = 0, 8 | Bicep 9 | } 10 | public class CodeDrawerContent 11 | { 12 | public CodeDrawerContentType Type { get; set; } 13 | public string Content { get; set; } = string.Empty; 14 | public IArmTemplate? ArmTemplate { get; set; } = default!; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Models/DeploymentParameters.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace AzureDesignStudio.Models 4 | { 5 | public record ArmParameter 6 | { 7 | public string Name { get; set; } = default!; 8 | } 9 | public record DeploymentParameters 10 | { 11 | [Required] 12 | public string ResourceGroup { get; set; } = default!; 13 | public IDictionary Parameters { get; set; } = null!; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Models/StencilModel.cs: -------------------------------------------------------------------------------- 1 | namespace AzureDesignStudio.Models 2 | { 3 | public class StencilModel 4 | { 5 | public string Key { get; set; } = default!; 6 | public string Name { get; set; } = default!; 7 | public string IconPath { get; set; } = default!; 8 | public string Label { get; set; } = default!; 9 | public string? ReferenceArchPath { get; set; } = null; 10 | public StencilCategory Category { get; set; } 11 | } 12 | 13 | public enum StencilCategory 14 | { 15 | Networking = 0, 16 | Compute, 17 | Database, 18 | Storage, 19 | Others, 20 | Gallery 21 | } 22 | 23 | public record StencilPanelModel 24 | { 25 | public string Key { get; set; } = default!; 26 | public string IconPath { get; set; } = default!; 27 | public StencilCategory Category { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Models/WindowSize.cs: -------------------------------------------------------------------------------- 1 | namespace AzureDesignStudio.Models 2 | { 3 | public class WindowSize 4 | { 5 | public int Width { get; set; } 6 | public int Height { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Pages/Index.razor.css: -------------------------------------------------------------------------------- 1 | .ads-toggle-sider-button { 2 | height: 44px; 3 | float: right; 4 | } 5 | 6 | .ads-toggle-sider-button > div { 7 | border: 1px solid transparent; 8 | padding: 5px 8px; 9 | font-size: 24px; 10 | line-height: 32px; 11 | } 12 | 13 | .ads-toggle-sider-button > div:hover { 14 | color: #1c92fe; 15 | } 16 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:53465/", 7 | "sslPort": 44361 8 | } 9 | }, 10 | "profiles": { 11 | "AzureDesignStudio": { 12 | "commandName": "Project", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | }, 17 | "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", 18 | "applicationUrl": "https://localhost:7158;http://localhost:5158", 19 | "dotnetRunMessages": true 20 | }, 21 | "IIS Express": { 22 | "commandName": "IISExpress", 23 | "launchBrowser": true, 24 | "environmentVariables": { 25 | "ASPNETCORE_ENVIRONMENT": "Development" 26 | }, 27 | "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}" 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @using AzureDesignStudio.Components 2 | @inherits LayoutComponentBase 3 | 4 | 5 |
6 | 7 | 8 | 9 |
Azure Design Studio
10 | 11 | 12 | 13 | 14 |
15 |
16 | @Body 17 |
18 | 19 | @code { 20 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/Shared/RedirectToLogin.razor: -------------------------------------------------------------------------------- 1 | @inject NavigationManager Navigation 2 | 3 | @code { 4 | protected override void OnInitialized() 5 | { 6 | Navigation.NavigateTo($"authentication/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using System.Net.Http.Json 3 | @using Microsoft.AspNetCore.Components.Authorization 4 | @using Microsoft.AspNetCore.Components.Forms 5 | @using Microsoft.AspNetCore.Components.Routing 6 | @using Microsoft.AspNetCore.Components.Web 7 | @using Microsoft.AspNetCore.Components.Web.Virtualization 8 | @using Microsoft.AspNetCore.Components.WebAssembly.Http 9 | @using Microsoft.JSInterop 10 | @using AzureDesignStudio 11 | @using AzureDesignStudio.Shared 12 | @using AntDesign 13 | @using Blazor.Diagrams.Core 14 | @using Blazor.Diagrams.Core.Models 15 | @using Blazor.Diagrams.Components 16 | @using BlazorApplicationInsights 17 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/wwwroot/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AzureAdB2C": { 3 | "Authority": "https://azdesignapp.b2clogin.com/azdesignapp.onmicrosoft.com/B2C_1_adssigninup", 4 | "ClientId": "53903153-545a-408e-a16d-1cc5a8b304e9", 5 | "ValidateAuthority": false 6 | }, 7 | "B2CScope": "https://azdesignapp.onmicrosoft.com/b29c5bdd-7bd6-4f43-835f-e2c9c358491e/Server.Access", 8 | "ResourceRoot": "https://cdn.azuredesign.app/", 9 | "Logging": { 10 | "LogLevel": { 11 | "Default": "Warning", 12 | "Microsoft.AspNetCore": "Warning" 13 | }, 14 | "BlazorApplicationInsights.ApplicationInsightsLoggerProvider": { 15 | "LogLevel": { 16 | "Default": "Information", 17 | "System.Net.Http.HttpClient": "Warning" 18 | } 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/AzureDesignStudio/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chunliu/AzureDesignStudio/2bd69d90d6c8806d53021409a5b0f3b2a44c38db/src/AzureDesignStudio/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/AzureDesignStudio/wwwroot/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chunliu/AzureDesignStudio/2bd69d90d6c8806d53021409a5b0f3b2a44c38db/src/AzureDesignStudio/wwwroot/icon-192.png -------------------------------------------------------------------------------- /src/AzureDesignStudio/wwwroot/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chunliu/AzureDesignStudio/2bd69d90d6c8806d53021409a5b0f3b2a44c38db/src/AzureDesignStudio/wwwroot/icon-512.png -------------------------------------------------------------------------------- /src/AzureDesignStudio/wwwroot/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AzureDesignStudio", 3 | "short_name": "AzureDesignStudio", 4 | "start_url": "./", 5 | "display": "standalone", 6 | "background_color": "#ffffff", 7 | "theme_color": "#03173d", 8 | "prefer_related_applications": false, 9 | "icons": [ 10 | { 11 | "src": "icon-512.png", 12 | "type": "image/png", 13 | "sizes": "512x512" 14 | }, 15 | { 16 | "src": "icon-192.png", 17 | "type": "image/png", 18 | "sizes": "192x192" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /src/AzureDesignStudio/wwwroot/service-worker.js: -------------------------------------------------------------------------------- 1 | // In development, always fetch from the network and do not enable offline support. 2 | // This is because caching would make development more difficult (changes would not 3 | // be reflected on the first load after each change). 4 | self.addEventListener('fetch', () => { }); 5 | -------------------------------------------------------------------------------- /src/Configurations/main/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: ads-main 5 | namespace: ads 6 | labels: 7 | app: ads-main 8 | spec: 9 | replicas: 2 10 | selector: 11 | matchLabels: 12 | app: ads-main 13 | template: 14 | metadata: 15 | labels: 16 | app: ads-main 17 | spec: 18 | serviceAccountName: adssvcaccount 19 | containers: 20 | - name: ads-main 21 | image: chunliu.azurecr.io/ads-server:0.4.3-7 22 | imagePullPolicy: IfNotPresent 23 | resources: 24 | limits: 25 | memory: 2Gi 26 | cpu: 750m 27 | ports: 28 | - containerPort: 80 29 | protocol: TCP 30 | env: 31 | - name: ASPNETCORE_HTTPS_PORT 32 | value: "443" 33 | -------------------------------------------------------------------------------- /src/Configurations/main/ingress.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: networking.k8s.io/v1 2 | kind: Ingress 3 | metadata: 4 | name: ads-main-ingress 5 | namespace: ads 6 | labels: 7 | name: ads-main 8 | annotations: 9 | cert-manager.io/cluster-issuer: letsencrypt-issuer 10 | nginx.ingress.kubernetes.io/from-to-www-redirect: "true" 11 | nginx.ingress.kubernetes.io/limit-rps: "30" 12 | spec: 13 | ingressClassName: nginx 14 | tls: 15 | - hosts: 16 | - www.azuredesign.app 17 | secretName: tls-main-secret 18 | rules: 19 | - host: www.azuredesign.app 20 | http: 21 | paths: 22 | - pathType: ImplementationSpecific 23 | path: / 24 | backend: 25 | service: 26 | name: ads-main-svc 27 | port: 28 | number: 80 29 | -------------------------------------------------------------------------------- /src/Configurations/main/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: ads-main-svc 5 | namespace: ads 6 | labels: 7 | app: ads-main 8 | spec: 9 | type: ClusterIP 10 | selector: 11 | app: ads-main 12 | ports: 13 | - port: 80 14 | targetPort: 80 15 | protocol: TCP 16 | -------------------------------------------------------------------------------- /src/DockerBuild.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | 3 | Write-Host "Get Nerdbank Git Version." 4 | 5 | nbgv get-version -f json | Out-File .\nbgv-version.json 6 | 7 | .\GenerateVersioningTargets.ps1 8 | 9 | docker build -f ./AzureDesignStudio.Server/Dockerfile -t azuredesignstudioserver --force-rm . 10 | 11 | Remove-Item -Path .\nbgv-version.json, .\Directory.Build.targets 12 | 13 | Write-Host "Build completed." -------------------------------------------------------------------------------- /src/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", 3 | "version": "0.4", 4 | "cloudBuild": { 5 | "setVersionVariables": false 6 | } 7 | } --------------------------------------------------------------------------------